[SCM] pd-ggee/master: added upstream updated Makefile as patch to fix HURD and kFreeBSD builds
eighthave-guest at users.alioth.debian.org
eighthave-guest at users.alioth.debian.org
Sun Jan 1 01:56:53 UTC 2012
The following commit has been merged in the master branch:
commit 77be659a837572ff3548391482268f456122bffb
Author: Hans-Christoph Steiner <hans at eds.org>
Date: Sat Dec 31 20:44:32 2011 -0500
added upstream updated Makefile as patch to fix HURD and kFreeBSD builds
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..037c9fa
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+update-makefile-for-hurd-and-kfreebsd
diff --git a/debian/patches/update-makefile-for-hurd-and-kfreebsd b/debian/patches/update-makefile-for-hurd-and-kfreebsd
new file mode 100644
index 0000000..6cac0d1
--- /dev/null
+++ b/debian/patches/update-makefile-for-hurd-and-kfreebsd
@@ -0,0 +1,352 @@
+Description: updated Makefile to fix HURD and kFreeBSD builds
+ This patch is generated from the upstream updated Makefile.
+Author: Hans-Christoph Steiner <hans at eds.org>
+Forwarded: not-needed
+Last-Update: <2011-12-31>
+
+--- pd-ggee-0.26.orig/Makefile
++++ pd-ggee-0.26/Makefile
+@@ -1,4 +1,4 @@
+-## Pd library template version 1.0.5
++## Pd library template version 1.0.11
+ # For instructions on how to use this template, see:
+ # http://puredata.info/docs/developer/MakefileTemplate
+ LIBRARY_NAME = ggee
+@@ -27,6 +27,7 @@ MANUAL =
+ EXTRA_DIST =
+
+
++# NOTE: kludge to strip with ggee's custom layout in libdir_install
+
+ #------------------------------------------------------------------------------#
+ #
+@@ -34,9 +35,11 @@ EXTRA_DIST =
+ #
+ #------------------------------------------------------------------------------#
+
+-CFLAGS = -DPD -I. -I"$(PD_INCLUDE)"/pd -Wall -W -g
+-LDFLAGS =
+-LIBS =
++ALL_CFLAGS = -I"$(PD_INCLUDE)"
++ALL_LDFLAGS =
++SHARED_LDFLAGS =
++ALL_LIBS =
++
+
+ #------------------------------------------------------------------------------#
+ #
+@@ -44,12 +47,17 @@ LIBS =
+ #
+ #------------------------------------------------------------------------------#
+
++# these can be set from outside without (usually) breaking the build
++CFLAGS = -Wall -W -g
++LDFLAGS =
++LIBS =
++
+ # get library version from meta file
+ LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
+
+-CFLAGS += -DVERSION='"$(LIBRARY_VERSION)"'
++ALL_CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
+
+-PD_INCLUDE = $(PD_PATH)/include
++PD_INCLUDE = $(PD_PATH)/include/pd
+ # where to install the library, overridden below depending on platform
+ prefix = /usr/local
+ libdir = $(prefix)/lib
+@@ -73,6 +81,7 @@ ifeq ($(UNAME),Darwin)
+ ifeq ($(CPU),arm) # iPhone/iPod Touch
+ SOURCES += $(SOURCES_iphoneos)
+ EXTENSION = pd_darwin
++ SHARED_EXTENSION = dylib
+ OS = iphoneos
+ PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+ IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
+@@ -82,14 +91,16 @@ ifeq ($(UNAME),Darwin)
+ ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
+ IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
+ OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
+- CFLAGS := $(IPHONE_CFLAGS) $(OPT_CFLAGS) $(CFLAGS)
+- LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
+- LIBS += -lc
++ ALL_CFLAGS := $(IPHONE_CFLAGS) $(ALL_CFLAGS)
++ ALL_LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
++ SHARED_LDFLAGS += -arch armv6 -dynamiclib -undefined dynamic_lookup $(ISYSROOT)
++ ALL_LIBS += -lc $(LIBS_iphoneos)
+ STRIP = strip -x
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ else # Mac OS X
+ SOURCES += $(SOURCES_macosx)
+ EXTENSION = pd_darwin
++ SHARED_EXTENSION = dylib
+ OS = macosx
+ PD_PATH = /Applications/Pd-extended.app/Contents/Resources
+ OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
+@@ -100,27 +111,87 @@ ifeq ($(UNAME),Darwin)
+ FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
+ SOURCES += $(SOURCES_iphoneos)
+ endif
+- CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
+- LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
++ ALL_CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
+ # if the 'pd' binary exists, check the linking against it to aid with stripping
+- LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
+- LIBS += -lc
++ BUNDLE_LOADER = $(shell test ! -e $(PD_PATH)/bin/pd || echo -bundle_loader $(PD_PATH)/bin/pd)
++ ALL_LDFLAGS += $(FAT_FLAGS) -bundle $(BUNDLE_LOADER) -undefined dynamic_lookup -L/sw/lib
++ SHARED_LDFLAGS += $(FAT_FLAGS) -dynamiclib -undefined dynamic_lookup \
++ -install_name @loader_path/$(SHARED_LIB) -compatibility_version 1 -current_version 1.0
++ ALL_LIBS += -lc $(LIBS_macosx)
+ STRIP = strip -x
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ # install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
+ pkglibdir=$(HOME)/Library/Pd
+ endif
+ endif
++# Tho Android uses Linux, we use this fake uname to provide an easy way to
++# setup all this things needed to cross-compile for Android using the NDK
++ifeq ($(UNAME),ANDROID)
++ CPU := arm
++ SOURCES += $(SOURCES_android)
++ EXTENSION = pd_linux
++ SHARED_EXTENSION = so
++ OS = android
++ PD_PATH = /usr
++ NDK_BASE := /usr/local/android-ndk
++ NDK_PLATFORM_VERSION := 5
++ NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm
++ NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]')
++ NDK_TOOLCHAIN_BASE=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86
++ CC := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT)
++ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
++ CFLAGS +=
++ LDFLAGS += -rdynamic -shared
++ SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
++ LIBS += -lc $(LIBS_android)
++ STRIP := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-strip \
++ --strip-unneeded -R .note -R .comment
++ DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
++endif
+ ifeq ($(UNAME),Linux)
+ CPU := $(shell uname -m)
+ SOURCES += $(SOURCES_linux)
+ EXTENSION = pd_linux
++ SHARED_EXTENSION = so
+ OS = linux
+ PD_PATH = /usr
+ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+- CFLAGS += -fPIC
+- LDFLAGS += -Wl,--export-dynamic -shared -fPIC
+- LIBS += -lc
++ ALL_CFLAGS += -fPIC
++ ALL_LDFLAGS += -rdynamic -shared -fPIC
++ SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
++ ALL_LIBS += -lc $(LIBS_linux)
++ STRIP = strip --strip-unneeded -R .note -R .comment
++ DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
++endif
++ifeq ($(UNAME),GNU)
++ # GNU/Hurd, should work like GNU/Linux for basically all externals
++ CPU := $(shell uname -m)
++ SOURCES += $(SOURCES_linux)
++ EXTENSION = pd_linux
++ SHARED_EXTENSION = so
++ OS = linux
++ PD_PATH = /usr
++ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
++ ALL_CFLAGS += -fPIC
++ ALL_LDFLAGS += -rdynamic -shared -fPIC
++ SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
++ ALL_LIBS += -lc $(LIBS_linux)
++ STRIP = strip --strip-unneeded -R .note -R .comment
++ DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
++endif
++ifeq ($(UNAME),GNU/kFreeBSD)
++ # Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals
++ CPU := $(shell uname -m)
++ SOURCES += $(SOURCES_linux)
++ EXTENSION = pd_linux
++ SHARED_EXTENSION = so
++ OS = linux
++ PD_PATH = /usr
++ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
++ ALL_CFLAGS += -fPIC
++ ALL_LDFLAGS += -rdynamic -shared -fPIC
++ SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
++ ALL_LIBS += -lc $(LIBS_linux)
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+ endif
+@@ -128,12 +199,14 @@ ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME
+ CPU := $(shell uname -m)
+ SOURCES += $(SOURCES_cygwin)
+ EXTENSION = dll
++ SHARED_EXTENSION = dll
+ OS = cygwin
+- PD_PATH = $(cygpath $(PROGRAMFILES))/pd
++ PD_PATH = $(shell cygpath $$PROGRAMFILES)/pd
+ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+- CFLAGS +=
+- LDFLAGS += -Wl,--export-dynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
+- LIBS += -lc -lpd
++ ALL_CFLAGS +=
++ ALL_LDFLAGS += -rdynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
++ SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
++ ALL_LIBS += -lc -lpd $(LIBS_cygwin)
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ endif
+@@ -141,12 +214,16 @@ ifeq (MINGW,$(findstring MINGW,$(UNAME))
+ CPU := $(shell uname -m)
+ SOURCES += $(SOURCES_windows)
+ 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
+- CFLAGS += -mms-bitfields
+- LDFLAGS += -s -shared -Wl,--enable-auto-import
+- LIBS += -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
++ ALL_CFLAGS += -mms-bitfields
++ ALL_LDFLAGS += -s -shared -Wl,--enable-auto-import -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj"
++ SHARED_LDFLAGS += -shared
++ ALL_LIBS += -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 $(LIBS_windows)
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ endif
+@@ -154,42 +231,60 @@ endif
+ # in case somebody manually set the HELPPATCHES above
+ HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
+
+-CFLAGS += $(OPT_CFLAGS)
+-
++ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS) $(OPT_CFLAGS)
++ALL_LDFLAGS := $(LDFLAGS) $(ALL_LDFLAGS)
++ALL_LIBS := $(LIBS) $(ALL_LIBS)
++
++SHARED_SOURCE ?= $(shell test ! -e lib$(LIBRARY_NAME).c || \
++ echo lib$(LIBRARY_NAME).c )
++SHARED_HEADER ?= $(shell test ! -e $(LIBRARY_NAME).h || echo $(LIBRARY_NAME).h)
++SHARED_LIB = $(SHARED_SOURCE:.c=.$(SHARED_EXTENSION))
+
+-.PHONY = install libdir_install single_install install-doc install-exec install-examples install-manual clean dist etags $(LIBRARY_NAME)
++.PHONY = install libdir_install single_install install-doc install-examples install-manual clean distclean dist etags $(LIBRARY_NAME)
+
+-all: $(SOURCES:.c=.$(EXTENSION))
++all: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB)
+
+ %.o: %.c
+- $(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
++ $(CC) $(ALL_CFLAGS) -o "$*.o" -c "$*.c"
+
+-%.$(EXTENSION): %.o
+- $(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS)
++%.$(EXTENSION): %.o $(SHARED_LIB)
++ $(CC) $(ALL_LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(ALL_LIBS) $(SHARED_LIB)
+ chmod a-x "$*.$(EXTENSION)"
+
+ # this links everything into a single binary file
+ $(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
+- $(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS)
++ $(CC) $(ALL_LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(ALL_LIBS)
+ chmod a-x $(LIBRARY_NAME).$(EXTENSION)
+
++$(SHARED_LIB): $(SHARED_SOURCE:.c=.o)
++ $(CC) $(SHARED_LDFLAGS) -o $(SHARED_LIB) $(SHARED_SOURCE:.c=.o) $(LIBS)
++
+ install: libdir_install
+
+ # The meta and help files are explicitly installed to make sure they are
+ # actually there. Those files are not optional, then need to be there.
+-libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-examples install-manual
++libdir_install: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB) install-doc install-examples install-manual
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ test -z "$(strip $(SOURCES))" || \
+ $(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
++# kludge to strip with ggee's custom layout
+ $(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/*.$(EXTENSION)
++# kludge to install example image
++ $(INSTALL_DATA) gui/logo100.gif $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
++ test -z "$(strip $(SHARED_LIB))" || \
++ $(INSTALL_DATA) $(SHARED_LIB) \
++ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
++ test -z "$(strip $(wildcard $(SOURCES:.c=.tcl)))" || \
++ $(INSTALL_DATA) $(wildcard $(SOURCES:.c=.tcl)) \
++ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_DATA) $(PDOBJECTS) \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+
+ # install library linked as single binary
+-single_install: $(LIBRARY_NAME) install-doc install-exec
++single_install: $(LIBRARY_NAME) install-doc install-examples install-manual
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
+@@ -218,10 +313,11 @@ install-manual:
+
+
+ clean:
+- -rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o)
++ -rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o) $(SHARED_SOURCE:.c=.o)
+ -rm -f -- $(SOURCES:.c=.$(EXTENSION))
+ -rm -f -- $(LIBRARY_NAME).o
+ -rm -f -- $(LIBRARY_NAME).$(EXTENSION)
++ -rm -f -- $(SHARED_LIB)
+
+ distclean: clean
+ -rm -f -- $(DISTBINDIR).tar.gz
+@@ -237,7 +333,7 @@ $(DISTBINDIR):
+
+ libdir: all $(DISTBINDIR)
+ $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTBINDIR)
+- $(INSTALL_DATA) $(SOURCES) $(DISTBINDIR)
++ $(INSTALL_DATA) $(SOURCES) $(SHARED_SOURCE) $(SHARED_HEADER) $(DISTBINDIR)
+ $(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
+ test -z "$(strip $(EXTRA_DIST))" || \
+ $(INSTALL_DATA) $(EXTRA_DIST) $(DISTBINDIR)
+@@ -256,6 +352,12 @@ dist: $(DISTDIR)
+ $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTDIR)
+ test -z "$(strip $(ALLSOURCES))" || \
+ $(INSTALL_DATA) $(ALLSOURCES) $(DISTDIR)
++ test -z "$(strip $(wildcard $(ALLSOURCES:.c=.tcl)))" || \
++ $(INSTALL_DATA) $(wildcard $(ALLSOURCES:.c=.tcl)) $(DISTDIR)
++ test -z "$(strip $(SHARED_HEADER))" || \
++ $(INSTALL_DATA) $(SHARED_HEADER) $(DISTDIR)
++ test -z "$(strip $(SHARED_SOURCE))" || \
++ $(INSTALL_DATA) $(SHARED_SOURCE) $(DISTDIR)
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_DATA) $(PDOBJECTS) $(DISTDIR)
+ test -z "$(strip $(HELPPATCHES))" || \
+@@ -288,17 +390,25 @@ etags:
+ etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
+
+ showsetup:
++ @echo "CC: $(CC)"
+ @echo "CFLAGS: $(CFLAGS)"
+ @echo "LDFLAGS: $(LDFLAGS)"
+ @echo "LIBS: $(LIBS)"
++ @echo "ALL_CFLAGS: $(ALL_CFLAGS)"
++ @echo "ALL_LDFLAGS: $(ALL_LDFLAGS)"
++ @echo "ALL_LIBS: $(ALL_LIBS)"
+ @echo "PD_INCLUDE: $(PD_INCLUDE)"
+ @echo "PD_PATH: $(PD_PATH)"
+ @echo "objectsdir: $(objectsdir)"
+ @echo "LIBRARY_NAME: $(LIBRARY_NAME)"
+ @echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
+ @echo "SOURCES: $(SOURCES)"
++ @echo "SHARED_HEADER: $(SHARED_HEADER)"
++ @echo "SHARED_SOURCE: $(SHARED_SOURCE)"
++ @echo "SHARED_LIB: $(SHARED_LIB)"
+ @echo "PDOBJECTS: $(PDOBJECTS)"
+ @echo "ALLSOURCES: $(ALLSOURCES)"
++ @echo "ALLSOURCES TCL: $(wildcard $(ALLSOURCES:.c=.tcl))"
+ @echo "UNAME: $(UNAME)"
+ @echo "CPU: $(CPU)"
+ @echo "pkglibdir: $(pkglibdir)"
--
pd-ggee packaging
More information about the pkg-multimedia-commits
mailing list