aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2011-10-07 17:14:10 +0000
committermescalinum <mescalinum@users.sourceforge.net>2011-10-07 17:14:10 +0000
commit0f35730e13c8a5cdc48366453e6ccb668b3183c7 (patch)
tree17b6a367d483b1fc18a525fcde2a6d9ec3371bc7 /Makefile
parentc968f78ef49ea027770f6350c74f9abc48f1ee35 (diff)
Several improvements to Makefile:
+ multiple -Iinclude search paths + DEBUG flag + try to get PD_PATH from env (if any) first + fix stripping bug svn path=/trunk/externals/loaders/tclpd/; revision=15535
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile48
1 files changed, 32 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index 12c3544..b90e107 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ EXTRA_DIST = tcl.i tcl_extras.h pdlib.tcl $(TCLPD_SOURCES) ChangeLog.txt AUTHORS
#
#------------------------------------------------------------------------------#
-ALL_CFLAGS = -I"$(PD_INCLUDE)" -std=c99 -I/usr/include/tcl8.5
+ALL_CFLAGS = $(PD_INCLUDE) -std=c99 -I/usr/include/tcl8.5
ALL_LDFLAGS =
SHARED_LDFLAGS =
ALL_LIBS =
@@ -51,7 +51,8 @@ LIBS_windows = -ltcl85 "$(LIBRARY_NAME).def"
#------------------------------------------------------------------------------#
# these can be set from outside without (usually) breaking the build
-CFLAGS = -Wall -W -g
+DEBUG = 0
+CFLAGS = -Wall -W
LDFLAGS =
LIBS =
@@ -60,7 +61,12 @@ LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(
ALL_CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
-PD_INCLUDE = $(PD_PATH)/include/pd
+# pd include paths to search, from more specific to more general:
+PD_INCLUDE = \
+ -I"$(PD_PATH)/include/pdextended"
+ -I"$(PD_PATH)/include/pd" \
+ -I"$(PD_PATH)/include"
+
# where to install the library, overridden below depending on platform
prefix = /usr/local
libdir = $(prefix)/lib
@@ -86,7 +92,7 @@ ifeq ($(UNAME),Darwin)
EXTENSION = pd_darwin
SHARED_EXTENSION = dylib
OS = iphoneos
- PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+ PD_PATH ?= /Applications/Pd-extended.app/Contents/Resources
IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
CC=$(IPHONE_BASE)/gcc
CPP=$(IPHONE_BASE)/cpp
@@ -105,7 +111,7 @@ ifeq ($(UNAME),Darwin)
EXTENSION = pd_darwin
SHARED_EXTENSION = dylib
OS = macosx
- PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+ PD_PATH ?= /Applications/Pd-extended.app/Contents/Resources
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# build universal 32-bit on 10.4 and 32/64 on newer
ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
@@ -133,7 +139,7 @@ ifeq ($(UNAME),ANDROID)
EXTENSION = pd_linux
SHARED_EXTENSION = so
OS = android
- PD_PATH = /usr
+ PD_PATH ?= /usr
NDK_BASE := /usr/local/android-ndk
NDK_PLATFORM_VERSION := 5
NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm
@@ -155,7 +161,7 @@ ifeq ($(UNAME),Linux)
EXTENSION = pd_linux
SHARED_EXTENSION = so
OS = linux
- PD_PATH = /usr
+ PD_PATH ?= /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
ALL_CFLAGS += -fPIC
ALL_LDFLAGS += -rdynamic -shared -fPIC
@@ -171,7 +177,7 @@ ifeq ($(UNAME),GNU)
EXTENSION = pd_linux
SHARED_EXTENSION = so
OS = linux
- PD_PATH = /usr
+ PD_PATH ?= /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
ALL_CFLAGS += -fPIC
ALL_LDFLAGS += -rdynamic -shared -fPIC
@@ -187,7 +193,7 @@ ifeq ($(UNAME),GNU/kFreeBSD)
EXTENSION = pd_linux
SHARED_EXTENSION = so
OS = linux
- PD_PATH = /usr
+ PD_PATH ?= /usr
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
ALL_CFLAGS += -fPIC
ALL_LDFLAGS += -rdynamic -shared -fPIC
@@ -202,7 +208,7 @@ ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
EXTENSION = dll
SHARED_EXTENSION = dll
OS = cygwin
- PD_PATH = $(shell cygpath $$PROGRAMFILES)/pd
+ PD_PATH ?= $(shell cygpath $$PROGRAMFILES)/pd
OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
ALL_CFLAGS +=
ALL_LDFLAGS += -rdynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
@@ -217,12 +223,12 @@ ifeq (MINGW,$(findstring MINGW,$(UNAME)))
EXTENSION = dll
SHARED_EXTENSION = dll
OS = windows
- PD_PATH = $(shell cd "$$PROGRAMFILES/pd" && pwd)
+ PD_PATH ?= $(shell cd "$$PROGRAMFILES/pd" && pwd)
# MinGW doesn't seem to include cc so force gcc
CC=gcc
OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
ALL_CFLAGS += -mms-bitfields
- ALL_LDFLAGS += -s -shared -Wl,--enable-auto-import
+ ALL_LDFLAGS += -shared -Wl,--enable-auto-import -fPIC
SHARED_LDFLAGS += -shared
ALL_LIBS += -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 $(LIBS_windows)
STRIP = strip --strip-unneeded -R .note -R .comment
@@ -232,7 +238,15 @@ endif
# in case somebody manually set the HELPPATCHES above
HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
-ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS) $(OPT_CFLAGS)
+ifeq ($(DEBUG),1)
+ ALL_CFLAGS += -O0 -g -ggdb
+ STRIP = echo
+else
+ ALL_CFLAGS += $(OPT_CFLAGS)
+ ALL_LDFLAGS += -s
+endif
+
+ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS)
ALL_LDFLAGS := $(LDFLAGS) $(ALL_LDFLAGS)
ALL_LIBS := $(LIBS) $(ALL_LIBS)
@@ -253,12 +267,14 @@ all: $(LIBRARY_NAME)
chmod a-x "$*.$(EXTENSION)"
tcl_wrap.c: tcl.i tcl_extras.h Makefile
- swig -v -tcl -o tcl_wrap.c -I"$(PD_INCLUDE)" tcl.i
+ swig -v -tcl -o tcl_wrap.c $(PD_INCLUDE) tcl.i
# this links everything into a single binary file
$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o tcl_wrap.o $(TCLPD_SOURCES:.c=.o)
- $(CC) $(ALL_LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) \
- $(LIBRARY_NAME).o tcl_wrap.o $(TCLPD_SOURCES:.c=.o) $(ALL_LIBS)
+ $(CC) $(CFLAGS) $(ALL_LDFLAGS) \
+ -o $(LIBRARY_NAME).$(EXTENSION) \
+ $(SOURCES:.c=.o) $(LIBRARY_NAME).o tcl_wrap.o \
+ $(TCLPD_SOURCES:.c=.o) $(ALL_LIBS)
chmod a-x $(LIBRARY_NAME).$(EXTENSION)
$(SHARED_LIB): $(SHARED_SOURCE:.c=.o)