Update of /cvsroot/hoc/hoc/HOC
In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv10721/HOC
Modified Files:
Makefile.in
Log Message:
Support dynamic linking in the makefiles.
Use:
make HocBuildDylibs=YES
and
sudo make install HocBuildDylibs=YES
requires a GHC installation with dynamic libraries.
Index: Makefile.in
===================================================================
RCS file: /cvsroot/hoc/hoc/HOC/Makefile.in,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- Makefile.in 1 Nov 2006 15:45:04 -0000 1.17
+++ Makefile.in 13 Feb 2007 17:17:13 -0000 1.18
@@ -11,7 +11,15 @@
Makefile.in \
$(NULL)
-all: libHOC.a HOC.o ../inplace.conf
+ifeq "$(HocBuildDylibs)" "YES"
+LIBRARIES=libHOC.a libHOC_dyn.dylib
+else
+LIBRARIES=libHOC.a HOC.o
+endif
+
+HOCLIBDIR="$(destdir)"/$(GHC_LIB_PATH)/HOC
+
+all: $(LIBRARIES) ../inplace.conf
../inplace.conf: HOC.conf-inplace
[ -f "$@" ] || echo '[]' > $@
@@ -31,11 +39,12 @@
libHOC.a: ghcmake.build-stamp
find build/objects/ -name \*.o | xargs $(MAKE_STATIC_LIB) libHOC.a
-libHOC_dyn.dylib: ghcmake
+libHOC_dyn.dylib: ghcmake.build-stamp
export MACOSX_DEPLOYMENT_TARGET=10.3 && find build/objects/ -name \*.o \
| xargs libtool \
-dynamic \
-undefined dynamic_lookup \
+ -single_module \
-o $@
install_name_tool -id "`pwd`/$@" $@
@@ -44,6 +53,11 @@
ghcmake: ghcmake.build-stamp
+ifeq "$(HocBuildDylibs)" "YES"
+CBITS=-L../HOC_cbits -lHOC_cbits_dyn
+else
+CBITS=../HOC_cbits/HOC_cbits.o
+endif
ghcmake.build-stamp:
mkdir -p build/objects
@@ -52,13 +66,15 @@
-O -fasm \
-odir build/objects -hidir build/imports \
-fglasgow-exts -fth \
- ../HOC_cbits/HOC_cbits.o \
+ -lobjc \
+ $(CBITS) \
-I../HOC_cbits \
-I../libffi-src/build/include \
-package-name HOC \
$(FOUNDATION_INCLUDES) \
$(FOUNDATION_LIBS) \
- $(DEFINES)
+ $(DEFINES) \
+ $(EXTRA_GHCFLAGS)
touch $@
clean:
@@ -67,10 +83,13 @@
ghcmake.build-stamp
install: install-files
- ranlib "$(destdir)"/$(GHC_LIB_PATH)/HOC/libHOC.a
+ ranlib $(HOCLIBDIR)/libHOC.a
+ifeq "$(HocBuildDylibs)" "YES"
+ install_name_tool -id $(HOCLIBDIR)/libHOC_dyn.dylib $(HOCLIBDIR)/libHOC_dyn.dylib
+endif
$(GHC_PKG) update HOC.conf
install-files: all HOC.conf
- mkdir -p "$(destdir)"/$(GHC_LIB_PATH)/HOC
- cp -R libHOC.a HOC.o build/imports \
- "$(destdir)"/$(GHC_LIB_PATH)/HOC/
+ mkdir -p $(HOCLIBDIR)
+ cp -R $(LIBRARIES) build/imports \
+ $(HOCLIBDIR)
|