1#
2# Makefile for iODBC
3##
4
5# Configured for Panther (10.5) by default
6# To rebuild on Jaguar (10.2) you need to define JAGUAR
7#Extra_CC_Flags = -DJAGUAR
8
9# Project info
10Project  = iodbc
11UserType = Developer
12ToolType = Commands
13#Install_Prefix = $(USRDIR)
14
15GnuAfterInstall = fixup
16
17# It's a GNU Source project
18include $(MAKEFILEPATH)/CoreOS/ReleaseControl/GNUSource.make
19
20# building in ~rc has to avoid ~ as a separator since it's used in pathnames
21export LIBTOOL_CMD_SEP = +
22
23# For building fat
24export MACOSX_DEPLOYMENT_TARGET = 10.9
25export LD_TWOLEVEL_NAMESPACE = 1
26# We want to create dSYM files in fixup, which means we can't strip until then; so make
27# strip a no-op.
28export STRIP = /bin/echo
29STRIP2 = /usr/bin/strip
30LIPO = /usr/bin/lipo
31
32Install_Target = install
33Extra_Configure_Flags += --prefix=/usr --with-iodbc-inidir=/Library/ODBC --disable-gui TMPDIR=$(OBJROOT)
34CFLAGS += -Wl,-framework,CoreFoundation
35
36# The first half of fixup is a hack to get dsymutil generating (correct) .dSYM files.
37# When dsymutil runs, it expects .o files used during linking to be laid out in the filesystem 
38# in the same way they were when a library was linked. Unfortunately, the iodbc build process 
39# puts things in lib*.lax/lib*.a directories during linking, and then removes those directories,
40# which results in incomplete .dSYM files. 
41# Rather than try to change the actual build process, this just reconstructs the filesystem 
42# layout to make dsymutil happy.
43# The last part of fixup is the stuff we need to get rid of everything but the actual libraries.
44# Somewhere in the middle is the stuff I inherited, plus stripping.
45fixup:
46	${MKDIR} "$(OBJROOT)/iodbc/.libs/libiodbc.lax/libiodbctrace.a";\
47	${MKDIR} "$(OBJROOT)/iodbc/.libs/libiodbc.lax/libiodbc_common.a";\
48	${CP} $(OBJROOT)/iodbc/trace/*.o $(OBJROOT)/iodbc/.libs/libiodbc.lax/libiodbctrace.a/.;\
49	${CP} $(OBJROOT)/iodbcinst/*.o $(OBJROOT)/iodbc/.libs/libiodbc.lax/libiodbc_common.a/.;\
50	${MKDIR} "$(OBJROOT)/iodbcinst/.libs/libiodbcinst.lax/libiodbc_common.a";\
51	${CP} $(OBJROOT)/iodbcinst/*.o $(OBJROOT)/iodbcinst/.libs/libiodbcinst.lax/libiodbc_common.a/.;\
52	${CP} "$(RC_Install_Prefix)/bin/iodbctest" "$(SYMROOT)/iodbctest"; \
53	${CP} "$(RC_Install_Prefix)/bin/iodbctestw" "$(SYMROOT)/iodbctestw"; \
54	${CP} "$(RC_Install_Prefix)/lib/libiodbc.2.1.18.dylib" "$(SYMROOT)/libiodbc.2.1.18.dylib"; \
55	$(CP) "$(OBJROOT)/iodbcinst/.libs/libiodbcinst.2.1.18.dylib" "$(SYMROOT)/libiodbcinst.2.1.18.dylib"; \
56	$(CP) "$(OBJROOT)/iodbcinst/.libs/libiodbcinst.2.1.18.dylib.dSYM" "$(SYMROOT)/libiodbcinst.2.1.18.dylib.dSYM"; \
57	${RM} $(RC_Install_Prefix)/lib/*.la; \
58	${STRIP2} -S $(RC_Install_Prefix)/lib/libiodbc.a; \
59	${STRIP2} -S $(RC_Install_Prefix)/lib/libiodbcinst.a; \
60	${STRIP2} -S $(RC_Install_Prefix)/lib/libiodbc.2.dylib; \
61	${STRIP2} -S $(RC_Install_Prefix)/lib/libiodbcinst.2.dylib; \
62	${STRIP2} -S $(RC_Install_Prefix)/bin/iodbctest; \
63	${LIPO} -thin x86_64 $(RC_Install_Prefix)/bin/iodbctest -output $(RC_Install_Prefix)/bin/tmp; \
64	${MV} $(RC_Install_Prefix)/bin/tmp $(RC_Install_Prefix)/bin/iodbctest; \
65	${STRIP2} -S $(RC_Install_Prefix)/bin/iodbctestw; \
66	${LIPO} -thin x86_64 $(RC_Install_Prefix)/bin/iodbctestw -output $(RC_Install_Prefix)/bin/tmp; \
67	${MV} $(RC_Install_Prefix)/bin/tmp $(RC_Install_Prefix)/bin/iodbctestw; \
68
69	${MKDIR} $(RC_Install_Prefix)/local/OpenSourceVersions; \
70	${CP} $(SRCROOT)/iodbc.plist $(RC_Install_Prefix)/local/OpenSourceVersions/; \
71	${CHOWN} root:wheel $(RC_Install_Prefix)/local/OpenSourceVersions/iodbc.plist; \
72	${CHMOD} 644 $(RC_Install_Prefix)/local/OpenSourceVersions/iodbc.plist; \
73
74	${MKDIR} $(RC_Install_Prefix)/local/OpenSourceLicenses; \
75	${CP} $(SRCROOT)/iodbc.txt $(RC_Install_Prefix)/local/OpenSourceLicenses/; \
76	${CHOWN} root:wheel $(RC_Install_Prefix)/local/OpenSourceLicenses/iodbc.txt; \
77	${CHMOD} 644 $(RC_Install_Prefix)/local/OpenSourceLicenses/iodbc.txt; \
78	${RM} -rf $(RC_Install_Prefix)/include; \
79	${RM} -rf $(RC_Install_Prefix)/share; \
80	${RM} -rf $(RC_Install_Prefix)/bin; \
81	${RM} $(RC_Install_Prefix)/lib/*.a; \
82
83