]> git.saurik.com Git - apple/libutil.git/blobdiff - Makefile
libutil-25.tar.gz
[apple/libutil.git] / Makefile
index 19c1c9b3d70c7cc641510863e98f501193232081..99b4304ef0fdaeddbf8d894dbe1158645235e5c6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,23 @@
 SHELL          := /bin/sh
 
 VERSION                = 1.0
-CC             = cc
+CC             = xcrun cc
+CPP            = xcrun c++
 CPPFLAGS       = -I$(SRCROOT)
-CFLAGS         = -Os -g3 -no-cpp-precomp -Wall $(RC_CFLAGS)
+
+ifneq ($(SDKROOT),)
+CFLAGS_SDK     = -isysroot $(SDKROOT)
+LDFLAGS_SDK    = -Wl,-syslibroot,$(SDKROOT)
+endif
+
+CFLAGS         = -Os -g3 -no-cpp-precomp -Wall $(RC_CFLAGS) $(CFLAGS_SDK)
 LDFLAGS                = $(RC_CFLAGS) -install_name /usr/lib/libutil.dylib -compatibility_version $(VERSION) \
-                 -current_version $(VERSION)
+                 -current_version $(VERSION) -lstdc++ -exported_symbols_list libutil.exports $(LDFLAGS_SDK)
 INSTALL                = install -c
 LN             = ln
-MKDIR          = mkdir
+MKDIR          = mkdir -p
 STRIP          = strip
+DSYMUTIL       = dsymutil
 AR             = ar
 RANLIB         = ranlib
 
@@ -20,13 +28,22 @@ DSTROOT             =
 
 LIB            := libutil1.0.dylib
 SRCS           := _secure_path.c getmntopts.c humanize_number.c \
-                  pidfile.c property.c realhostname.c trimdomain.c uucplock.c
-HDRS           := libutil.h mntopts.h
+                  pidfile.c property.c realhostname.c trimdomain.c uucplock.c \
+                  ExtentManager.cpp wipefs.cpp reexec_to_match_kernel.c
+HDRS           := libutil.h mntopts.h wipefs.h
 MAN3           := _secure_path.3 getmntopts.3 humanize_number.3 pidfile.3 \
-                  property.3 realhostname.3 realhostname_sa.3 trimdomain.3 uucplock.3
+                  property.3 realhostname.3 realhostname_sa.3 trimdomain.3 \
+                  uucplock.3 wipefs.3 reexec_to_match_kernel.3
+
+ifeq ($(RC_ProjectName),libutil_Sim)
+       INSTALL_PREFIX = $(SDKROOT)
+else
+       INSTALL_PREFIX = 
+endif
+
 
 .SUFFIXES :
-.SUFFIXES : .c .h .o
+.SUFFIXES : .c .cpp .h .o
 
 .PHONY :
 .PHONY : all installsrc installhdrs install clean installlib installman
@@ -50,28 +67,33 @@ installsrc :
        done
 
 installhdrs :
-       $(INSTALL) -d $(DSTROOT)/usr/local/include
-       $(INSTALL) -m 0644 $(HDRS) $(DSTROOT)/usr/local/include
+       $(INSTALL) -d $(DSTROOT)$(INSTALL_PREFIX)/usr/local/include
+       $(INSTALL) -m 0644 $(HDRS) $(DSTROOT)$(INSTALL_PREFIX)/usr/local/include
 
 
+ifeq ($(RC_ProjectName),libutil_Sim)
+install : installhdrs installlib strip install-plist
+else
 install : installhdrs installlib strip installman install-plist
+endif
 
 clean :
-       rm -f $(patsubst %.c,$(OBJROOT)/%.o,$(SRCS))
+       rm -f $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS)))
        rm -f $(SYMROOT)/*~
        rm -f $(SRCROOT)/.\#*
        rm -f $(SYMROOT)/$(LIB)
 
 strip:
-       $(STRIP) -x -S $(DSTROOT)/usr/lib/$(LIB)
+       $(STRIP) -x -S $(DSTROOT)$(INSTALL_PREFIX)/usr/lib/$(LIB)
 
 #
 # Internal targets and rules.
 #
 installlib : $(SYMROOT)/$(LIB)
-       $(INSTALL) -d $(DSTROOT)/usr/lib
-       $(INSTALL) -m 0755 $< $(DSTROOT)/usr/lib
-       $(LN) -fs libutil1.0.dylib $(DSTROOT)/usr/lib/libutil.dylib
+       $(DSYMUTIL) $(SYMROOT)/$(LIB) -o $(SYMROOT)/$(LIB).dSYM
+       $(INSTALL) -d $(DSTROOT)$(INSTALL_PREFIX)/usr/lib
+       $(INSTALL) -m 0755 $< $(DSTROOT)$(INSTALL_PREFIX)/usr/lib
+       $(LN) -fs libutil1.0.dylib $(DSTROOT)$(INSTALL_PREFIX)/usr/lib/libutil.dylib
 
 installman :
        $(INSTALL) -d $(DSTROOT)/usr/local/share/man/man3
@@ -84,14 +106,18 @@ $(OBJROOT)/%.o : $(SRCROOT)/%.c \
             $(patsubst %.h,$(SRCROOT)/%.h,$(HDRS))
        $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
 
-$(SYMROOT)/$(LIB) : $(patsubst %.c,$(OBJROOT)/%.o,$(SRCS))
-       $(CC) -dynamiclib $(LDFLAGS) -o $@ $?
+$(OBJROOT)/%.o : $(SRCROOT)/%.cpp \
+            $(patsubst %.h,$(SRCROOT)/%.h,$(HDRS))
+       $(CPP) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
+
+$(SYMROOT)/$(LIB) : $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS)))
+       $(CC) -dynamiclib $(LDFLAGS) -o $@ $(patsubst %.cpp,$(OBJROOT)/%.o,$(patsubst %.c,$(OBJROOT)/%.o,$(SRCS)))
 
-OSV    = $(DSTROOT)/usr/local/OpenSourceVersions
-OSL    = $(DSTROOT)/usr/local/OpenSourceLicenses
+OSV    = $(DSTROOT)$(INSTALL_PREFIX)/usr/local/OpenSourceVersions
+OSL    = $(DSTROOT)$(INSTALL_PREFIX)/usr/local/OpenSourceLicenses
 
 install-plist:
        $(MKDIR) $(OSV)
-       $(INSTALL) $(SRCROOT)/libutil.plist $(OSV)/
+       $(INSTALL) -m 644 $(SRCROOT)/libutil.plist $(OSV)/
        $(MKDIR) $(OSL)
-       $(INSTALL) $(SRCROOT)/libutil.txt $(OSL)/
+       $(INSTALL) -m 644 $(SRCROOT)/libutil.txt $(OSL)/