Project := smb-sync-preferences
ifndef CoreOSMakefiles
CoreOSMakefiles = $(MAKEFILEPATH)/CoreOS
endif
.IGNORE: clean
VERBOSE := YES
ifeq ($(SRCROOT),.)
COPY_SOURCES = NO
endif
ifeq ($(GnuNoStrip),YES)
STRIP_X := true
else
STRIP_X := strip -x
endif
include $(CoreOSMakefiles)/ReleaseControl/Common.make
include $(CoreOSMakefiles)/Standard/Variables.make
include $(CoreOSMakefiles)/Standard/Implicit.make
SRCROOT = .
OBJROOT = .
SYMROOT = .
DSTROOT = .
-include ../../make.common
SMB_LIBEXEC ?= $(LIBEXECDIR)/samba
DEBUG ?= NO
TESTLEAKS ?= NO
Cxx := /usr/bin/c++
Extra_CPP_Includes = -Iinclude
Extra_Cxx_Flags := $(RC_CFLAGS) $(SANE_GCC_WARNINGS)
Extra_LD_Flags := $(RC_CFLAGS) $(SANE_GCC_WARNINGS)
ifeq ($(DEBUG),YES)
Extra_Cxx_Flags += -DDEBUG
CC_Optimize := -O0
endif
ifeq ($(TESTLEAKS),YES)
Extra_Cxx_Flags += -DTESTLEAKS
endif
LIBS := -framework SystemConfiguration -framework CoreServices
SYNC_SOURCES := \
$(SRCROOT)/sync.cpp \
$(SRCROOT)/rules.cpp \
$(SRCROOT)/lib/SmbOption.cpp \
$(SRCROOT)/lib/SmbConfig.cpp \
$(SRCROOT)/lib/plist.cpp \
$(SRCROOT)/lib/options.cpp \
$(SRCROOT)/lib/utils.cpp \
$(SRCROOT)/lib/RegularExpression.cpp \
$(SRCROOT)/lib/launchctl.cpp
SHARES_SOURCES := \
$(SRCROOT)/shares.cpp \
$(SRCROOT)/lib/SmbConfig.cpp \
$(SRCROOT)/lib/RegularExpression.cpp \
$(SRCROOT)/lib/options.cpp \
$(SRCROOT)/lib/utils.cpp
SYNC_OBJECTS := $(subst $(SRCROOT),$(OBJROOT),$(SYNC_SOURCES:.cpp=.o))
SHARES_OBJECTS := $(subst $(SRCROOT),$(OBJROOT),$(SHARES_SOURCES:.cpp=.o))
TARGETS := $(OBJROOT)/smb-sync-preferences \
$(OBJROOT)/smb-sync-shares
$(BuildDirectory)/%.o: %.cpp
@echo "Compiling "$@"..."
$(_v) $(Cxx) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
all: $(TARGETS)
build:: $(TARGETS)
$(SYNC_OBJECTS): $(OBJROOT)/lib
$(OBJROOT)/lib:
$(_v) $(MKDIR) $(OBJROOT)/lib
$(OBJROOT)/smb-sync-preferences: $(SYNC_OBJECTS)
@echo Linking $@ ...
$(_v) $(Cxx) $(LDFLAGS) -o $@ $^ $(LIBS)
$(OBJROOT)/smb-sync-shares: $(SHARES_OBJECTS)
@echo Linking $@ ...
$(_v) $(Cxx) $(LDFLAGS) -o $@ $^ $(LIBS) -framework OpenDirectory
install:: $(TARGETS)
$(INSTALL) -d -m 755 $(DSTROOT)$(USRDIR)/local/include
$(INSTALL) -d -m 755 $(DSTROOT)$(SMB_LIBEXEC)
$(INSTALL) -c -m 755 -o root -g wheel \
$(OBJROOT)/smb-sync-preferences \
$(DSTROOT)$(SMB_LIBEXEC)
$(INSTALL) -c -m 755 -o root -g wheel \
$(OBJROOT)/smb-sync-shares \
$(DSTROOT)$(SMB_LIBEXEC)
(cd $(DSTROOT)$(SMB_LIBEXEC) && \
ln -s smb-sync-preferences synchronize-preferences)
(cd $(DSTROOT)$(SMB_LIBEXEC) && \
ln -s smb-sync-shares synchronize-shares)
$(INSTALL) -c -m 644 \
$(SRCROOT)/include/smb_server_prefs.h \
$(DSTROOT)$(USRDIR)/local/include
ifndef $(NoSymRootCopy)
$(INSTALL) -d -m 755 $(SYMROOT)$(USRDIR)/local/include
$(INSTALL) -d -m 755 $(SYMROOT)$(SMB_LIBEXEC)
$(INSTALL) -c -m 755 -o root -g wheel \
$(OBJROOT)/smb-sync-preferences \
$(SYMROOT)$(SMB_LIBEXEC)
$(INSTALL) -c -m 755 -o root -g wheel \
$(OBJROOT)/smb-sync-shares \
$(SYMROOT)$(SMB_LIBEXEC)
dsymutil $(SYMROOT)$(SMB_LIBEXEC)/smb-sync-preferences
dsymutil $(SYMROOT)$(SMB_LIBEXEC)/smb-sync-shares
endif
clean::
-$(_v) rm -rf $(SYNC_OBJECTS) $(SHARES_OBJECTS) *.dSYM
-$(_v) rm -f $(TARGETS)