OBJROOT ?= .
SRCROOT ?= .
SYMROOT ?= $(shell echo $(LOCAL_BUILD_DIR))
LOCAL_BUILD=$(SYMROOT)
ifeq "" "$(LOCAL_BUILD)"
LOCAL_BUILD = .
endif
CLEAN_DIR=$(shell echo $(LOCAL_BUILD_DIR))
ifeq "" "$(CLEAN_DIR)"
CLEAN_DIR = .
endif
$
DSTROOT ?= ""
SPHINX ?=
INSTALLDIR := $(DSTROOT)/usr/local/lib
INSTALLHDRDIR := $(DSTROOT)/usr/local/include/utilLib
OFILES := $(CSOURCE:%.c=$(OBJROOT)/%.o) $(CPSOURCE:%.cpp=$(OBJROOT)/%.o)
PRIV_FRAMEWORK_PATH= /System/Library/PrivateFrameworks
ALL_LDFLAGS= -static $(PROJ_LDFLAGS)
CC=c++
STD_FINCLUDES= -F$(LOCAL_BUILD) -F$(PRIV_FRAMEWORK_PATH)
ALL_INCLUDES= $(STD_INCLUDES) $(PROJ_INCLUDES)
CINCLUDES= $(STD_FINCLUDES) $(ALL_INCLUDES)
WFLAGS= -Wno-four-char-constants -Wall -Wno-deprecated-declarations
STD_CFLAGS= -g $(VERBOSE) $(SPHINX)
DEBUG_CFLAGS?=
PROJ_CFLAGS?= -fvisibility=hidden
ALL_CFLAGS= $(CINCLUDES) $(STD_CFLAGS) $(PROJ_CFLAGS) $(WFLAGS) $(DEBUG_CFLAGS)
BUILT_TARGET= $(LOCAL_BUILD)/$(EXECUTABLE)
first: $(PROJ_DEPENDS) $(BUILT_TARGET)
build: first
sphinx:
make "SPHINX=-DSPHINX"
64bit:
make "DEBUG_CFLAGS=-arch x86_64"
64bitFat:
make "DEBUG_CFLAGS=-arch x86_64 -arch i386"
fat:
make "DEBUG_CFLAGS=-arch i386" "CMDLINE_LDFLAGS=-arch i386"
install: build
install -d -m 0755 $(INSTALLDIR)
install -p -m 0644 $(BUILT_TARGET) $(INSTALLDIR)
install -d -m 0755 $(INSTALLHDRDIR)
install -p -m 0644 *.h $(INSTALLHDRDIR)
installhdrs:
install -d -m 0755 $(INSTALLHDRDIR)
install -p -m 0644 *.h $(INSTALLHDRDIR)
$(BUILT_TARGET): $(OFILES)
@echo === building $(BUILT_TARGET) ===
libtool $(ALL_LDFLAGS) -o $(BUILT_TARGET) $^
clean:
cd $(SRCROOT); rm -f $(OFILES) *.o
rm -f $(BUILT_TARGET)
rm -f $(CLEAN_DIR)/$(EXECUTABLE)
$(OBJROOT)/%.o: %.c
$(CC) $(ALL_CFLAGS) -c -o $(OBJROOT)/$*.o $<
$(OBJROOT)/%.o: %.cpp
$(CC) $(ALL_CFLAGS) -c -o $(OBJROOT)/$*.o $<