]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - Makefile
initial OS X app building stuff. May be broken.
[xonotic/netradiant.git] / Makefile
index 3291739229d371f95a92ee16bc6a59acd956144e..0319a92c9cb1b05621fb7c0f48688fa0afff754c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -145,7 +145,7 @@ endif
 endif
 
 ifeq ($(OS),Linux)
-       CPPFLAGS_COMMON += -DPOSIX -DXWINDOWS -D_LINUX
+       CPPFLAGS_COMMON += -DPOSIX -DXWINDOWS
        CFLAGS_COMMON += -fPIC
        LDFLAGS_DLL = -fPIC -ldl
        LIBS_COMMON = -lpthread
@@ -174,13 +174,27 @@ ifeq ($(OS),Win32)
 else
 
 ifeq ($(OS),Darwin)
-       CFLAGS_COMMON += -force-cpusubtype_ALL -fPIC
+       CPPFLAGS_COMMON += -DPOSIX -DXWINDOWS
+       CFLAGS_COMMON += -fPIC
        CXXFLAGS_COMMON += -fno-exceptions -fno-rtti
        CPPFLAGS_COMMON += -I/sw/include -I/usr/X11R6/include
        LDFLAGS_COMMON += -L/sw/lib -L/usr/lib -L/usr/X11R6/lib
        LDFLAGS_DLL += -dynamiclib -ldl
        EXE = ppc
-       $(error Unsupported build OS: $(OS) - please complete the Darwin support in this Makefile and submit a patch)
+       A = a
+       DLL = dylib
+       MWINDOWS =
+
+       # workaround: http://developer.apple.com/qa/qa2007/qa1567.html
+       LIBS_GL += -lX11 -dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
+       LIBS_GTKGLEXT += -lX11 -dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
+       # workaround: we have no "ldd" for OS X, so...
+       LDD =
+
+       INSTALLDIR_BASE := $(INSTALLDIR)
+       INSTALLDIR := $(INSTALLDIR_BASE)/NetRadiant.app/Contents/MacOS/install
+endif
+
 else
 
 $(error Unsupported build OS: $(OS))
@@ -246,8 +260,9 @@ dependencies-check:
        checkbinary g++ "$(CXX)"; \
        checkbinary binutils "$(RANLIB)"; \
        checkbinary binutils "$(AR)"; \
+       checkbinary pkg-config "$(PKGCONFIG)"; \
        [ "$(OS)" = "Win32" ] && checkbinary mingw32 "$(WINDRES)"; \
-       [ "$(OS)" != "Win32" ] && checkbinary libc6 "$(LDD)"; \
+       [ -n "$(lDD)" ] && checkbinary libc6 "$(LDD)"; \
        $(ECHO) All required tools have been found!
        @$(ECHO)
        @if [ x"$(DEPENDENCIES_CHECK)" = x"verbose" ]; then set -x; fi; \
@@ -339,12 +354,12 @@ ifeq ($(OS),Win32)
 endif
 
 %.o: %.cpp $(if $(findstring $(DEPEND_ON_MAKEFILE),yes),$(wildcard Makefile*),)
-       $(CXX) $< $(CFLAGS) $(CXXFLAGS) $(CFLAGS_COMMON) $(CXXFLAGS_COMMON) $(CPPFLAGS) $(CPPFLAGS_COMMON) $(CPPFLAGS_EXTRA) $(TARGET_ARCH) -c -o $@
+       $(CXX) $< $(CFLAGS) $(CXXFLAGS) $(CFLAGS_COMMON) $(CXXFLAGS_COMMON) $(CPPFLAGS_EXTRA) $(CPPFLAGS_COMMON) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@
 
 %.o: %.c $(if $(findstring $(DEPEND_ON_MAKEFILE),yes),$(wildcard Makefile*),)
-       $(CC) $< $(CFLAGS) $(CFLAGS_COMMON) $(CPPFLAGS) $(CPPFLAGS_COMMON) $(CPPFLAGS_EXTRA) $(TARGET_ARCH) -c -o $@
+       $(CC) $< $(CFLAGS) $(CFLAGS_COMMON) $(CPPFLAGS_EXTRA) $(CPPFLAGS_COMMON) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@
 
-$(INSTALLDIR)/q3map2.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB) $(LIBS_PNG)
+$(INSTALLDIR)/q3map2.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB) $(LIBS_PNG) $(LIBS_ZLIB)
 $(INSTALLDIR)/q3map2.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_PNG) -Itools/quake3/common -Ilibs -Iinclude
 $(INSTALLDIR)/q3map2.$(EXE): \
        tools/quake3/common/cmdlib.o \
@@ -469,8 +484,8 @@ libddslib.$(A): CPPFLAGS_EXTRA := -Ilibs
 libddslib.$(A): \
        libs/ddslib/ddslib.o \
 
-$(INSTALLDIR)/q3data.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB)
-$(INSTALLDIR)/q3data.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) -Itools/quake3/common -Ilibs -Iinclude
+$(INSTALLDIR)/q3data.$(EXE): LIBS_EXTRA := $(LIBS_XML) $(LIBS_GLIB) $(LIBS_ZLIB)
+$(INSTALLDIR)/q3data.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_ZLIB) -Itools/quake3/common -Ilibs -Iinclude
 $(INSTALLDIR)/q3data.$(EXE): \
        tools/quake3/common/aselib.o \
        tools/quake3/common/bspfile.o \
@@ -497,7 +512,7 @@ $(INSTALLDIR)/q3data.$(EXE): \
        $(if $(findstring $(OS),Win32),icons/q3data.o,) \
 
 $(INSTALLDIR)/radiant.$(EXE): LDFLAGS_EXTRA := $(MWINDOWS)
-$(INSTALLDIR)/radiant.$(EXE): LIBS_EXTRA := $(LIBS_GL) $(LIBS_DL) $(LIBS_XML) $(LIBS_GLIB) $(LIBS_GTK) $(LIBS_GTKGLEXT)
+$(INSTALLDIR)/radiant.$(EXE): LIBS_EXTRA := $(LIBS_GL) $(LIBS_DL) $(LIBS_XML) $(LIBS_GLIB) $(LIBS_GTK) $(LIBS_GTKGLEXT) $(LIBS_ZLIB)
 $(INSTALLDIR)/radiant.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_GL) $(CPPFLAGS_DL) $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_GTK) $(CPPFLAGS_GTKGLEXT) -Ilibs -Iinclude
 $(INSTALLDIR)/radiant.$(EXE): \
        radiant/autosave.o \
@@ -923,6 +938,7 @@ $(INSTALLDIR)/heretic2/h2data.$(EXE): \
 install-data: binaries
        $(MKDIR) $(INSTALLDIR)/games
        $(FIND) $(INSTALLDIR)/ -name .svn -exec $(RM_R) {} \; -prune
+       [ "$(OS)" != "Darwin" ] || $(CP_R) setup/data/osx/NetRadiant.app/* $(INSTALLDIR_BASE)/NetRadiant.app/
        set -ex; \
        for GAME in games/*; do \
                if [ -d "$$GAME/tools" ]; then \