From 1a9899f88d9d4216a66f0c58b07f021dd4240e72 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 5 Jun 2009 02:37:43 +0000 Subject: first stab at simplified standard Makefile svn path=/trunk/externals/ext13/; revision=11672 --- Makefile | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Makefile (limited to 'Makefile') 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) + -- cgit v1.2.1