From 0e16aa4d7cd117e25585249c29e90c9ea82801a0 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 28 Apr 2015 14:46:09 -0400 Subject: [PATCH] Fixed build system for OS X builds. --- new/GNUbase.mk | 3 +++ new/GNUmakefile | 2 +- new/darwin/GNUmakeinc.mk | 5 +++++ new/unix/GNUmakeinc.mk | 2 ++ new/windows/GNUmakeinc.mk | 2 ++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/new/GNUbase.mk b/new/GNUbase.mk index 5594cb10..5f0a6ca2 100644 --- a/new/GNUbase.mk +++ b/new/GNUbase.mk @@ -35,6 +35,9 @@ $(OUT): $(OFILES) | $(OUTDIR)/.phony $(OBJDIR)/%.o: %.c $(xHFILES) | $$(dir $$@).phony $(CC) -o $@ -c $< $(xCFLAGS) +$(OBJDIR)/%.o: %.m $(xHFILES) | $$(dir $$@).phony + $(CC) -o $@ -c $< $(xCFLAGS) + # see http://www.cmcrossroads.com/article/making-directories-gnu-make %/.phony: mkdir -p $(dir $@) diff --git a/new/GNUmakefile b/new/GNUmakefile index aa01f372..2334e50f 100644 --- a/new/GNUmakefile +++ b/new/GNUmakefile @@ -31,7 +31,7 @@ baseMFILES = $(osMFILES) baseCFLAGS = $(osCFLAGS) baseLDFLAGS = \ -shared \ - -Wl,--no-undefined -Wl,--no-allow-shlib-undefined \ + $(osLDWarnUndefinedFlags) \ $(osLDFLAGS) baseSUFFIX = $(osLIBSUFFIX) diff --git a/new/darwin/GNUmakeinc.mk b/new/darwin/GNUmakeinc.mk index ecca8e3c..3a534413 100644 --- a/new/darwin/GNUmakeinc.mk +++ b/new/darwin/GNUmakeinc.mk @@ -14,5 +14,10 @@ osHFILES = \ osCFLAGS = -mmacosx-version-min=10.7 -DMACOSX_DEPLOYMENT_TARGET=10.7 osLDFLAGS = -mmacosx-version-min=10.7 -lobjc -framework Foundation -framework AppKit +# the gcc flags don't work with Apple's linker +# fortunately, we don't need any; Apple's linker warns about undefined symbols in -shared builds! +osLDWarnUndefinedFlags = + + osLIBSUFFIX = .dylib osEXESUFFIX = diff --git a/new/unix/GNUmakeinc.mk b/new/unix/GNUmakeinc.mk index 34a80e4f..5e7ecdb0 100644 --- a/new/unix/GNUmakeinc.mk +++ b/new/unix/GNUmakeinc.mk @@ -25,5 +25,7 @@ osLDFLAGS = \ -fPIC \ `pkg-config --libs gtk+-3.0` +osLDWarnUndefinedFlags = -Wl,--no-undefined -Wl,--no-allow-shlib-undefined + osLIBSUFFIX = .so osEXESUFFIX = diff --git a/new/windows/GNUmakeinc.mk b/new/windows/GNUmakeinc.mk index ea31145a..f720d43b 100644 --- a/new/windows/GNUmakeinc.mk +++ b/new/windows/GNUmakeinc.mk @@ -24,6 +24,8 @@ osLDFLAGS = \ -static-libgcc \ -luser32 -lkernel32 -lgdi32 -luxtheme -lmsimg32 -lcomdlg32 -lole32 -loleaut32 -loleacc -luuid +osLDWarnUndefinedFlags = -Wl,--no-undefined -Wl,--no-allow-shlib-undefined + osLIBSUFFIX = .dll osEXESUFFIX = .exe