summaryrefslogtreecommitdiff
path: root/src/Makefile.MacOS
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.MacOS')
-rw-r--r--src/Makefile.MacOS78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/Makefile.MacOS b/src/Makefile.MacOS
new file mode 100644
index 0000000..b42f13a
--- /dev/null
+++ b/src/Makefile.MacOS
@@ -0,0 +1,78 @@
+#
+# Notes:
+#
+# * Compilation Defines:
+#
+# FAKE_STAT
+# - Enables time faking also for files' timestamps.
+#
+# NO_ATFILE
+# - Disables support for the fstatat() group of functions
+#
+# PTHREAD
+# - Define this to enable multithreading support.
+#
+# PTHREAD_SINGLETHREADED_TIME
+# - Define this if you want to single-thread time() ... there ARE
+# possibile caching side-effects in a multithreaded environment
+# without this, but the performance impact may require you to
+# try it unsynchronized.
+#
+# FAKE_INTERNAL_CALLS
+# - Also intercept libc internal __functions, e.g. not just time(),
+# but also __time(). Enhances compatibility with applications
+# that make use of low-level system calls, such as Java Virtual
+# Machines.
+#
+# NO_CACHING
+# - Disables the caching of the fake time offset. Only disable caching
+# if you change the fake time offset during program runtime very
+# frequently. Disabling the cache may negatively influence the
+# performance.
+#
+#
+# * Compilation addition: second libMT target added for building the pthread-
+# enabled library as a separate library
+#
+# * Compilation switch change: previous versions compiled using '-nostartfiles'
+# This is no longer the case since there is a 'startup' constructor for the library
+# which is used to activate the start-at times when specified. This also initializes
+# the dynamic disabling of the FAKE_STAT calls.
+#
+
+CC = gcc
+INSTALL = install
+
+PREFIX = /usr/local
+
+CFLAGS = -dynamiclib -DFAKE_INTERNAL_CALLS
+
+SRC = faketime.c
+
+SONAME = 1
+LIBS = libfaketime.dylib.${SONAME}
+
+all: ${LIBS}
+
+libfaketime.dylib.${SONAME}: ${SRC}
+ ${CC} -o $@ ${CFLAGS} $<
+
+clean:
+ @rm -f ${OBJ} ${LIBS}
+
+distclean: clean
+ @echo
+
+install: ${LIBS}
+ @echo
+ @echo "Copying the faketime libraries to ${DESTDIR}${PREFIX}/lib/faketime and the faketime wrapper script to ${DESTDIR}${PREFIX}/bin ..."
+ $(INSTALL) -dm0755 "${DESTDIR}${PREFIX}/lib/faketime/"
+ $(INSTALL) -m0644 ${LIBS} "${DESTDIR}${PREFIX}/lib/faketime/"
+ $(INSTALL) -Dm0755 faketime "${DESTDIR}${PREFIX}/bin/faketime"
+
+uninstall:
+ for f in ${LIBS}; do rm -f "${DESTDIR}${PREFIX}/lib/faketime/$$f"; done
+ rmdir "${DESTDIR}${PREFIX}/lib/faketime"
+ rm -f "${DESTDIR}${PREFIX}/bin/faketime"
+
+.PHONY: all clean distclean install uninstall