Commit e60558dd authored by hybrid's avatar hybrid

Better support for osx builds

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1716 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 1202f2ee
...@@ -60,8 +60,8 @@ CXXFLAGS += -pg ...@@ -60,8 +60,8 @@ CXXFLAGS += -pg
endif endif
CFLAGS := -fexpensive-optimizations -O3 -DPNG_THREAD_UNSAFE_OK -DPNG_NO_MMX_CODE -DPNG_NO_MNG_FEATURES CFLAGS := -fexpensive-optimizations -O3 -DPNG_THREAD_UNSAFE_OK -DPNG_NO_MMX_CODE -DPNG_NO_MNG_FEATURES
sharedlib : CXXFLAGS += -fpic sharedlib sharedlib_osx: CXXFLAGS += -fpic
sharedlib : CFLAGS += -fpic sharedlib sharedlib_osx: CFLAGS += -fpic
#multilib handling #multilib handling
ifeq ($(HOSTTYPE), x86_64) ifeq ($(HOSTTYPE), x86_64)
...@@ -70,14 +70,16 @@ endif ...@@ -70,14 +70,16 @@ endif
#Linux specific options #Linux specific options
STATIC_LIB = libIrrlicht.a STATIC_LIB = libIrrlicht.a
SHARED_LIB = libIrrlicht.so
IRRLICHT_DLL := ../../bin/Win32-gcc/Irrlicht.dll IRRLICHT_DLL := ../../bin/Win32-gcc/Irrlicht.dll
LIB_PATH = ../../lib/$(SYSTEM) LIB_PATH = ../../lib/$(SYSTEM)
INSTALL_DIR = /usr/local/lib INSTALL_DIR = /usr/local/lib
staticlib sharedlib install: SYSTEM = Linux staticlib sharedlib install: SYSTEM = Linux
staticlib sharedlib : LDFLAGS = --no-export-all-symbols --add-stdcall-alias staticlib_osx sharedlib_osx install_osx: SYSTEM = MacOSX
sharedlib : LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm sharedlib: SHARED_LIB = libIrrlicht.so
staticlib sharedlib : CXXINCS += -I/usr/X11R6/include sharedlib_osx: SHARED_LIB = libIrrlicht.dylib
staticlib sharedlib staticlib_osx sharedlib_osx: LDFLAGS = --no-export-all-symbols --add-stdcall-alias
sharedlib sharedlib_osx: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm
staticlib sharedlib staticlib_osx sharedlib_osx: CXXINCS += -I/usr/X11R6/include
#Windows specific options #Windows specific options
sharedlib_win32 staticlib_win32: SYSTEM = Win32-gcc sharedlib_win32 staticlib_win32: SYSTEM = Win32-gcc
...@@ -99,7 +101,7 @@ $(STATIC_LIB): $(LINKOBJ) ...@@ -99,7 +101,7 @@ $(STATIC_LIB): $(LINKOBJ)
$(AR) rs $@ $^ $(AR) rs $@ $^
# Copies static lib into /lib/Linux # Copies static lib into /lib/Linux
staticlib: $(STATIC_LIB) staticlib staticlib_osx: $(STATIC_LIB)
cp $^ $(LIB_PATH) cp $^ $(LIB_PATH)
# Builds Irrlicht as dll (Irrlicht.dll) into ../../bin/Win32-gcc # Builds Irrlicht as dll (Irrlicht.dll) into ../../bin/Win32-gcc
...@@ -111,12 +113,22 @@ sharedlib_win32: $(IRRLICHT_DLL) ...@@ -111,12 +113,22 @@ sharedlib_win32: $(IRRLICHT_DLL)
staticlib_win32: $(STATIC_LIB) staticlib_win32: $(STATIC_LIB)
cp $^ $(LIB_PATH) cp $^ $(LIB_PATH)
# Builds Irrlicht as shared lib (libIrrlicht.so.versionNumber) and copies it into /lib/Linux
sharedlib_osx: $(LINKOBJ)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -dynamiclib -Wl,-install_name,$(SHARED_LIB).1 -fPIC -o $(SHARED_LIB).$(VERSION) $^ $(LDFLAGS)
cp $(SHARED_LIB).$(VERSION) $(LIB_PATH)
# Installs Irrlicht if it was created as shared lib # Installs Irrlicht if it was created as shared lib
install: install:
cp $(LIB_PATH)/$(SHARED_LIB).$(VERSION) $(INSTALL_DIR) cp $(LIB_PATH)/$(SHARED_LIB).$(VERSION) $(INSTALL_DIR)
cd $(INSTALL_DIR) && ln -s libIrrlicht.so.$(VERSION) $(SHARED_LIB) cd $(INSTALL_DIR) && ln -s libIrrlicht.so.$(VERSION) $(SHARED_LIB)
ldconfig -n $(INSTALL_DIR) ldconfig -n $(INSTALL_DIR)
install:
cp $(LIB_PATH)/$(SHARED_LIB).$(VERSION) $(INSTALL_DIR)
cd $(INSTALL_DIR) && ln -s libIrrlicht.dylib.$(VERSION) $(SHARED_LIB)
ldconfig -n $(INSTALL_DIR)
# Create dependency files for automatic recompilation # Create dependency files for automatic recompilation
%.d:%.cpp %.d:%.cpp
$(CXX) $(CPPFLAGS) -MM -MF $@ $< $(CXX) $(CPPFLAGS) -MM -MF $@ $<
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment