.DEFAULT: all
USE_APPLE_PB_SUPPORT = all
ifdef RC_OS
PLATFORM_OS = $(RC_OS)
else
PLATFORM_OS = nextstep
endif
ifeq ($(PLATFORM_OS), teflon)
PLATFORM_OS = nextstep
endif
ifeq ($(PLATFORM_OS), nextstep)
MACLIKE = YES
endif
ifeq ($(PLATFORM_OS), macos)
MACLIKE = YES
endif
MAKEFILEDIR = $(shell pwd)
include $(MAKEFILEDIR)/platform-variables.make
-include $(NEXT_ROOT)$(LOCAL_DEVELOPER_DIR)/Makefiles/platform/makefile.platform
MAKEFILE_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_DIR)/Makefiles/project
ifeq ($(PLATFORM_OS), winnt)
NEXT_BIN = $(NEXT_ROOT)$(SYSTEM_DEVELOPER_EXECUTABLES_DIR)/Utilities
NEXTDEV_BIN = $(NEXT_ROOT)$(SYSTEM_DEVELOPER_EXECUTABLES_DIR)
EXEC_SUFFIX = .exe
BIN_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_EXECUTABLES_DIR)
SUPPORT_PROGS = $(CLONEHDRS) $(CHANGES) $(ARCH_TOOL) $(OFILE_TOOL) $(LIBTOOL) $(FRAMEWORK_FLAGS)
INSTALLED_TOOLS = changes.exe arch_tool.exe ofileListTool.exe frameworkFlags.exe
SHELL = $(NEXT_ROOT)$(SYSTEM_LIBRARY_EXECUTABLES_DIR)/sh
RM = $(NEXT_BIN)/rm
CP = $(NEXT_BIN)/cp
ECHO = $(NEXT_BIN)/echo
MKDIRS = $(NEXT_BIN)/mkdirs
TAR = $(NEXT_BIN)/tar
VERS_STRING = $(NEXTDEV_BIN)/vers_string
SYMLINK = $(CP)
STRIP = $(ECHO) Warning: Not stripping
CHMOD = $(NEXT_BIN)/chmod
else
SHELL = /bin/sh
RM = /bin/rm
CP = /bin/cp -p
SYMLINK = /bin/ln -s
ECHO = /bin/echo
TAR = /usr/bin/gnutar
CHMOD = /bin/chmod
ifeq ($(MACLIKE), YES)
BIN_INSTALL_DIR = $(DSTROOT)/usr/lib
SUPPORT_PROGS = $(FASTCP) $(CLONEHDRS) $(CHANGES) $(ARCH_TOOL) $(OFILE_TOOL) $(FRAMEWORK_FLAGS)
INSTALLED_TOOLS = fastcp clonehdrs changes arch_tool ofileListTool frameworkFlags
STRIP = /usr/bin/strip
CC = /usr/bin/cc
MIG = $(NEXT_ROOT)/usr/bin/mig
ifneq "" "$(wildcard /bin/mkdirs)"
MKDIRS = /bin/mkdirs
else
MKDIRS = /bin/mkdir -p
endif
VERS_STRING = /usr/bin/vers_string
ifneq "" "$(wildcard /usr/etc/chown)"
CHOWN = /usr/etc/chown
else
CHOWN = /usr/sbin/chown
endif
ifneq "" "$(wildcard /bin/chgrp)"
CHGRP = /bin/chgrp
else
CHGRP = /usr/bin/chgrp
endif
CHOWN_TO_ROOT = $(CHOWN) -fR root
CHGRP_TO_BIN = $(CHGRP) -fR wheel
endif
ifeq ($(PLATFORM_OS), solaris)
MAKEFILE_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_DIR)/Makefiles/project
BIN_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_DIR)/Executables
SUPPORT_PROGS = $(FASTCP) $(CLONEHDRS) $(CHANGES) $(ARCH_TOOL) $(OFILE_TOOL) $(LIBTOOL) $(INSTALLTOOL) $(FRAMEWORK_FLAGS)
INSTALLED_TOOLS = fastcp clonehdrs changes arch_tool ofileListTool frameworkFlags
NEXTDEV_BIN = $(NEXT_ROOT)$(SYSTEM_DEVELOPER_DIR)/Executables
SUNDEV_BIN = /usr/ccs/bin
CC = $(NEXTDEV_BIN)/gcc
MKDIRS = /usr/bin/mkdir -p
VERS_STRING = $(NEXT_ROOT)/usr/local/bin/vers_string
STRIP = $(SUNDEV_BIN)/strip
CHGRP_TO_BIN = /bin/chgrp -fR bin
CHOWN_TO_ROOT = /usr/ucb/chown -fR root
endif
ifeq ($(PLATFORM_OS), hpux)
MAKEFILE_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_DIR)/Makefiles/project
BIN_INSTALL_DIR = $(DSTROOT)$(SYSTEM_DEVELOPER_DIR)/Executables
SUPPORT_PROGS = $(FASTCP) $(CLONEHDRS) $(CHANGES) $(ARCH_TOOL) $(OFILE_TOOL) $(LIBTOOL) $(INSTALLTOOL) $(FRAMEWORK_FLAGS)
INSTALLED_TOOLS = fastcp clonehdrs changes arch_tool ofileListTool frameworkFlags
NEXTDEV_BIN = $(NEXT_ROOT)$(SYSTEM_DEVELOPER_DIR)/Executables
CC = $(NEXTDEV_BIN)/gcc
MKDIRS = /usr/bin/mkdir -p
VERS_STRING = $(NEXT_ROOT)/usr/local/bin/vers_string
STRIP = /bin/strip
CHGRP_TO_BIN = /bin/chgrp -R bin
CHOWN_TO_ROOT = /bin/chown -R root
endif
endif
INSTALL_DIRS = $(MAKEFILE_INSTALL_DIR) $(BIN_INSTALL_DIR)
TEMPLATES = Makefile.preamble.template Makefile.postamble.template
MAKEFILES = app.make framework.make bundle.make tool.make \
library.make aggregate.make subproj.make \
bundle-common.make common.make basicrules.make \
platform-variables.make
OS_SPECIFIC_MAKEFILES = nextstep-specific.make macos-specific.make winnt-specific.make \
solaris-specific.make hpux-specific.make
ifeq ($(PLATFORM_OS), winnt)
OBJROOT = c:/tmp/Objects/PM
SYMROOT = c:/tmp/Objects/PM
else
OBJROOT = $(HOME)/Objects/PM
SYMROOT = $(HOME)/Objects/PM
endif
DSTROOT = $(NEXT_ROOT)
OFILE_DIR = $(OBJROOT)/$(PLATFORM_OS)_obj
CFLAGS = -g -O -Wmost -I. -I$(OFILE_DIR) $(OTHER_CFLAGS) $(RC_CFLAGS)
.c.o:
$(CC) $(CFLAGS) -c $*.c -o $(OFILE_DIR)/$*.o
.m.o:
$(CC) $(CFLAGS) -F$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks -c $*.m -o $(OFILE_DIR)/$*.o
VPATH = $(OFILE_DIR)
CLONEHDRS_CFILES = clonehdrs.c
CLONEHDRS_OFILES = $(CLONEHDRS_CFILES:.c=.o)
CLONEHDRS_SRC = $(CLONEHDRS_CFILES)
CLONEHDRS_LIBS =
CLONEHDRS = $(SYMROOT)/clonehdrs$(EXEC_SUFFIX)
ifeq ($(MACLIKE), YES)
FASTCP_CFILES = fastcp.c publicizeCopy.c
FASTCP_OFILES = $(FASTCP_CFILES:.c=.o) makeUser.o
FASTCP_HFILES = make_defs.h
FASTCP_SRC = $(FASTCP_CFILES) $(FASTCP_CLASSES) $(FASTCP_HFILES) make.defs
FASTCP_LIBS =
else
FASTCP_CFILES = fastcp.c publicizeCopy.c
FASTCP_OFILES = $(FASTCP_CFILES:.c=.o)
FASTCP_HFILES =
FASTCP_SRC = $(FASTCP_CFILES) $(FASTCP_CLASSES) $(FASTCP_HFILES)
FASTCP_LIBS =
endif
FASTCP = $(SYMROOT)/fastcp$(EXEC_SUFFIX)
CHANGES_CFILES = changes.c
CHANGES_OFILES = changes.o
CHANGES_SRC = $(CHANGES_CFILES)
CHANGES_LIBS =
CHANGES = $(SYMROOT)/changes$(EXEC_SUFFIX)
ARCH_TOOL_CFILES = arch_tool.c
ARCH_TOOL_OFILES = $(ARCH_TOOL_CFILES:.c=.o)
ARCH_TOOL_SRC = $(ARCH_TOOL_CFILES)
ARCH_TOOL_LIBS =
ARCH_TOOL = $(SYMROOT)/arch_tool$(EXEC_SUFFIX)
OFILE_TOOL_CFILES = ofileListTool.c
OFILE_TOOL_OFILES = $(OFILE_TOOL_CFILES:.c=.o)
OFILE_TOOL_SRC = $(OFILE_TOOL_CFILES)
OFILE_TOOL_LIBS =
OFILE_TOOL = $(SYMROOT)/ofileListTool$(EXEC_SUFFIX)
FRAMEWORK_FLAGS_CFILES = frameworkFlags.c
FRAMEWORK_FLAGS_OFILES = $(FRAMEWORK_FLAGS_CFILES:.c=.o)
FRAMEWORK_FLAGS_SRC = $(FRAMEWORK_FLAGS_CFILES)
FRAMEWORK_FLAGS_LIBS =
FRAMEWORK_FLAGS = $(SYMROOT)/frameworkFlags$(EXEC_SUFFIX)
LIBTOOL = $(SYMROOT)/libtool
LIBTOOL_SRC = libtool.winnt libtool.solaris libtool.hpux
INSTALLTOOL = $(SYMROOT)/installtool
INSTALLTOOL_SRC = installtool.pdo
ifeq ($(MACLIKE), YES)
publicizeCopy.c: $(OFILE_DIR)/make.h
makeUser.c: $(OFILE_DIR)/make.h
$(OFILE_DIR)/make.h $(OFILE_DIR)/makeUser.c: ./make.defs
$(CP) ./make.defs $(OFILE_DIR)
(cd $(OFILE_DIR) ; $(MIG) -untyped make.defs ; $(RM) -f makeServer.c)
endif
$(FASTCP): $(FASTCP_OFILES) $(FASTCP_HFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FASTCP_OFILES) $(FASTCP_LIBS)
$(CHANGES): $(CHANGES_OFILES) $(CHANGES_HFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(CHANGES_OFILES) $(CHANGES_LIBS)
$(OFILE_TOOL): $(OFILE_TOOL_OFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILE_TOOL_OFILES) $(OFILE_TOOL_LIBS)
$(ARCH_TOOL): $(ARCH_TOOL_OFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ARCH_TOOL_OFILES) $(ARCH_TOOL_LIBS)
$(CLONEHDRS): $(CLONEHDRS_OFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(CLONEHDRS_OFILES) $(CLONEHDRS_LIBS)
$(LIBTOOL): libtool.$(PLATFORM_OS) $(OFILE_DIR)
$(CP) libtool.$(PLATFORM_OS) $(LIBTOOL)
$(CHMOD) +x $(LIBTOOL)
$(CHMOD) u+w $(LIBTOOL)
$(INSTALLTOOL): installtool.pdo $(OFILE_DIR)
$(CP) installtool.pdo $(INSTALLTOOL)
$(CHMOD) +x $(INSTALLTOOL)
$(CHMOD) u+w $(INSTALLTOOL)
$(FRAMEWORK_FLAGS): $(FRAMEWORK_FLAGS_OFILES)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FRAMEWORK_FLAGS_OFILES) $(FRAMEWORK_FLAGS_LIBS)
SOURCES = PB.project $(MAKEFILES) $(OS_SPECIFIC_MAKEFILES) $(TEMPLATES) \
$(FASTCP_SRC) $(CHANGES_SRC) $(ARCH_TOOL_SRC) $(OFILE_TOOL_SRC) \
$(CLONEHDRS_SRC) $(FRAMEWORK_FLAGS_SRC) $(LIBTOOL_SRC) \
$(INSTALLTOOL_SRC) $(WINDOWS_CMDS)
all: $(OFILE_DIR) $(SYMROOT) $(SUPPORT_PROGS)
clean:
$(RM) -rf *~ make.h makeUser.c $(SUPPORT_PROGS) *.exe *obj
$(SRCROOT) $(INSTALL_DIRS) $(OFILE_DIR) $(SYMROOT):
$(MKDIRS) $@
install:: installhdrs clean_first all $(INSTALL_DIRS) $(SUPPORT_PROGS)
$(CP) $(SUPPORT_PROGS) $(BIN_INSTALL_DIR)
@(for t in $(INSTALLED_TOOLS) ; do \
cmd="$(STRIP) $(BIN_INSTALL_DIR)/$$t" ; \
$(ECHO) $$cmd ; $$cmd ; \
done)
$(CP) $(MAKEFILES) $(PLATFORM_OS)-specific.make $(TEMPLATES) \
$(MAKEFILE_INSTALL_DIR)
(cd $(MAKEFILE_INSTALL_DIR) ; \
$(SYMLINK) bundle.make palette.make ; \
$(ECHO) "PLATFORM_OS = $(PLATFORM_OS)" > platform.make; \
$(ECHO) 'include $$(MAKEFILEPATH)/project/platform-variables.make' >> platform.make)
$(ECHO) `$(VERS_STRING) -n` > $(MAKEFILE_INSTALL_DIR)/VERSION
ifdef CHMOD
-$(CHMOD) -R ugo-w $(BIN_INSTALL_DIR)
-$(CHMOD) -R ugo-w $(MAKEFILE_INSTALL_DIR)
endif
ifneq "$(CHOWN_TO_ROOT)" ""
$(CHOWN_TO_ROOT) $(BIN_INSTALL_DIR)
$(CHOWN_TO_ROOT) $(MAKEFILE_INSTALL_DIR)
endif
ifneq "$(CHGRP_TO_BIN)" ""
$(CHGRP_TO_BIN) $(BIN_INSTALL_DIR)
$(CHGRP_TO_BIN) $(MAKEFILE_INSTALL_DIR)
endif
installhdrs::
echo "No headers to install"
clean_first:
-$(RM) -rf $(MAKEFILE_INSTALL_DIR)
installsrc:: $(SRCROOT)
$(TAR) cf - Makefile $(SOURCES) | (cd ${SRCROOT}; $(TAR) xfp -)