aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile75
1 files changed, 75 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..456ac86
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,75 @@
+
+LIBRARY_NAME = $(shell basename $(PWD))
+
+SOURCES = catch13~.c ext13.c filesize.c ftos.c kalashnikov.c mandelbrot~.c mandelbrot.c messages.c openpatch.c ossmixer.c piperead~.c pipewrite~.c receive13~.c receive13.c scramble~.c send13~.c send13.c sfread.c sfwrite13~.c streamin13~.c streamout13~.c strippath.c throw13~.c wavinfo.c
+
+CFLAGS = -DPD -I../../pd/src -Wall -W -g
+LDFLAGS =
+LIBS = -lm
+
+UNAME := $(shell uname -s)
+ifeq ($(UNAME),Darwin)
+ SOURCES +=
+ EXTENSION = pd_darwin
+ OS = macosx
+ CFLAGS += -DUNIX -fPIC
+ OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
+ LDFLAGS += -bundle -undefined dynamic_lookup
+ LIBS += -lc
+ STRIP = strip -x
+ endif
+ifeq ($(UNAME),Linux)
+ SOURCES += cdplayer.c ossmixer.c promiscous~.c
+ EXTENSION = pd_linux
+ OS = linux
+ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+ CFLAGS += -DUNIX -fPIC
+ LDFLAGS += -Wl,--export-dynamic -shared -fPIC
+ LIBS += -lc
+ STRIP = strip --strip-unneeded -R .note -R .comment
+endif
+ifeq (MINGW,$(findstring MINGW,$(UNAME)))
+ SOURCES +=
+ EXTENSION = dll
+ OS = windows
+ OPT_CFLAGS = -03 -funroll-loops -fomit-frame-pointer
+ WINDOWS_HACKS = -D'O_NONBLOCK=1' -D'srand48(n)=srand((n))' \
+ -D'drand48()=((double)rand()/RAND_MAX)' -D'bzero(p,n)=memset(p,0,n)'
+# These don't seem to be needed:
+# -D'PROT_READ=1' \
+# -D'MAP_PRIVATE=2' \
+# -D'O_NDELAY=O_NONBLOCK'
+ CFLAGS += -mms-bitfields -DMSW -DNT $(WINDOWS_HACKS)
+ LDFLAGS += -shared
+# all of these included libs are part of libc in UNIX platforms. All except
+# libregex are in DLLs, so they get stripped from the external's .dll binary
+ LIBS += -L$(pd_src)/bin -L$(pd_src)/obj -lpd \
+ -lwsock32 -lpthreadGC2 -lkernel32 -luser32 -lgdi32 -lregex
+ DYLIB_LDFLAGS = -shared
+ STRIP = strip --strip-unneeded -R .note -R .comment
+endif
+
+CFLAGS += $(OPT_CFLAGS)
+
+
+
+all: $(SOURCES:.c=.$(EXTENSION))
+
+%.o: %.c
+ $(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
+
+%.$(EXTENSION): %.o
+ $(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS)
+ chmod a-x "$*.$(EXTENSION)"
+ $(STRIP) $*.$(EXTENSION)
+ rm -f -- $*.o
+
+
+clean:
+ -rm -f -- $(SOURCES:.c=.o)
+ -rm -f -- $(SOURCES:.c=.$(EXTENSION))
+
+
+dist:
+ cd .. && tar cjpf $(LIBRARY_NAME)-$(OS).tar.bz2 $(LIBRARY_NAME)
+