vmax2bella/makefile

143 lines
3.0 KiB
Makefile

SDKNAME =bella_scene_sdk
OUTNAME =vmax2bella
UNAME =$(shell uname)
ifeq ($(UNAME), Darwin)
SDKBASE = ../bella_scene_sdk
SDKFNAME = lib$(SDKNAME).dylib
LZFSELIBNAME = liblzfse.dylib
INCLUDEDIRS = -I$(SDKBASE)/src
INCLUDEDIRS2 = -I../lzfse/src
INCLUDEDIRS3 = -I../PlistCpp/include
INCLUDEDIRS4 = -I../PlistCpp/src
LIBDIR = $(SDKBASE)/lib
LIBDIRS = -L$(LIBDIR)
LZFSEBUILDDIR = ../lzfse/build
LZFSELIBDIR = -L$(LZFSEBUILDDIR)
PLISTDIR = ../PlistCpp/build
PLISTLIBDIR = -L$(PLISTDIR)
OBJDIR = obj/$(UNAME)
BINDIR = bin/$(UNAME)
OUTPUT = $(BINDIR)/$(OUTNAME)
ISYSROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
CC = clang
CXX = clang++
CCFLAGS = -arch x86_64\
-arch arm64\
-mmacosx-version-min=11.0\
-isysroot $(ISYSROOT)\
-fvisibility=hidden\
-O3\
$(INCLUDEDIRS)\
$(INCLUDEDIRS2)\
$(INCLUDEDIRS3)\
$(INCLUDEDIRS4)
CFLAGS = $(CCFLAGS)\
-std=c17
CXXFLAGS = $(CCFLAGS)\
-std=c++17\
-Wno-deprecated-declarations
CPPDEFINES = -DNDEBUG=1\
-DDL_USE_SHARED
LIBS = -l$(SDKNAME)\
-lm\
-ldl\
-llzfse\
$(PLISTDIR)/libplist.a
LINKFLAGS = -mmacosx-version-min=11.0\
-isysroot $(ISYSROOT)\
-framework Cocoa\
-framework IOKit\
-fvisibility=hidden\
-O5\
-rpath @executable_path
else
SDKBASE = ../bella_scene_sdk
SDKFNAME = lib$(SDKNAME).so
SDKFNAME2 = liblzfse.so
INCLUDEDIRS = -I$(SDKBASE)/src
INCLUDEDIRS2 = -I../lzfse/src
INCLUDEDIRS3 = -I../PlistCpp/include
INCLUDEDIRS4 = -I../PlistCpp/src
LIBDIR = $(SDKBASE)/lib
LIBDIRS = -L$(LIBDIR)
LZFSEBUILDDIR = ../lzfse/build
LZFSELIBDIR = -L$(LZFSEBUILDDIR)
PLISTDIR = ../PlistCpp/build
PLISTLIBDIR = -L$(PLISTDIR)
OBJDIR = obj/$(UNAME)
BINDIR = bin/$(UNAME)
OUTPUT = $(BINDIR)/$(OUTNAME)
CC = gcc
CXX = g++
CCFLAGS = -m64\
-Wall\
-fvisibility=hidden\
-D_FILE_OFFSET_BITS=64\
-O3\
$(INCLUDEDIRS)\
$(INCLUDEDIRS2)\
$(INCLUDEDIRS3)\
$(INCLUDEDIRS4)
CFLAGS = $(CCFLAGS)\
-std=c11
CXXFLAGS = $(CCFLAGS)\
-std=c++11
CPPDEFINES = -DNDEBUG=1\
-DDL_USE_SHARED
LIBS = -l$(SDKNAME)\
-lm\
-ldl\
-lrt\
-lpthread\
-llzfse\
$(PLISTDIR)/libplist.a
LINKFLAGS = -m64\
-fvisibility=hidden\
-O3\
-Wl,-rpath,'$$ORIGIN'\
-Wl,-rpath,'$$ORIGIN/lib'
endif
OBJS = vmax2bella.o
OBJ = $(patsubst %,$(OBJDIR)/%,$(OBJS))
# Define the path to the precompiled pugixml.o
PUGIXML_OBJ = pugixml/bin/$(UNAME)/pugixml.o
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(@D)
$(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPDEFINES)
$(OUTPUT): $(OBJ) $(PUGIXML_OBJ)
@mkdir -p $(@D)
$(CXX) -o $@ $(OBJ) $(PUGIXML_OBJ) $(LINKFLAGS) $(LIBDIRS) $(LZFSELIBDIR) $(LIBS)
@cp $(LIBDIR)/$(SDKFNAME) $(BINDIR)/$(SDKFNAME)
@cp $(LZFSEBUILDDIR)/$(LZFSELIBNAME) $(BINDIR)/$(LZFSELIBNAME)
.PHONY: clean
clean:
rm -f $(OBJDIR)/*.o
rm -f $(OUTPUT)
rm -f $(BINDIR)/$(SDKFNAME)