USE_APPLE_PB_SUPPORT = all
HOSTS= `arch`
TARGET_OS= $(RC_OS)
targets= case "$(TARGET_OS)" in *win*) echo i386 ;; \
*) if [ "$(TARGET_OS)" = teflon -o "$(TARGET_OS)" = macos \
-o -f /usr/bin/uname ]; then \
echo $${TARGETS:-'i386 ppc'}; \
elif [ "$(RC_RELEASE)" = Grail ]; then \
echo $${TARGETS:-'m68k i386 sparc ppc'}; \
else \
echo $${TARGETS:-'m68k i386 sparc'}; \
fi ;; esac
TARGETS:= $(shell $(targets))
RC_ARCHS= $(HOSTS)
SRCROOT= .
SRC= `cd $(SRCROOT) && pwd | sed s,/private,,`
DSTROOT= $(SRC)/dst
SYMROOT= $(SRC)/sym
OBJROOT= $(SRC)/obj
BOOTSTRAP= --bootstrap
ARCH= `arch`
CHOWN= `if [ -f /usr/etc/chown ]; then echo /usr/etc/chown; \
elif [ -f /usr/sbin/chown ]; then echo /usr/sbin/chown; \
else echo chown; fi`
MKDIRS= `case "$(TARGET_OS)" in *win*) echo mkdirs ;; \
*) if [ -f /bin/mkdirs ]; then echo mkdirs; else echo mkdir -p; fi ;; \
esac`
RM= `case "$(TARGET_OS)" in *win*) echo rm ;; *) echo /bin/rm ;; esac`
shell= case "$(TARGET_OS)" in *win*) echo sh ;; *) echo /bin/sh ;; esac
SHELL:= $(shell $(shell))
make= `if [ -f /bin/gnumake ]; then echo /bin/gnumake; else echo make; fi` \
$(MFLAGS)
debug: obj.clone
./build_gcc --thins \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
obj.clone:
@root=$(OBJROOT); \
if ls -lgd $$root | egrep '^l'; then \
echo "============================================"; \
echo "== CLONING BINARIES, WILL TAKE A WHILE... =="; \
echo "============================================"; \
mv $$root $$root.lnk; \
mkdir $$root; cd $$root.lnk; \
find . -depth -print | cpio -pdl $$root; \
fi; \
touch obj.clone
obj.unclone:
root=$(OBJROOT); \
if ls -lgd $$root.lnk | egrep '^l'; then \
echo "============================================"; \
echo "== REMOVING BINARIES, WILL TAKE A WHILE =="; \
echo "============================================"; \
mv $$root $$root.tree; \
mv $$root.lnk $$root; \
$(RM) -Rf $$root.tree; \
fi; \
$(RM) -f obj.clone
config:
./build_gcc --configure \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
build: build_bison
./build_gcc --thins \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="`if [ \( ! "$(TARGET_OS)" \
-o "$(TARGET_OS)" = nextstep \) \
-a ! -f /usr/bin/uname ]; then \
echo -DOPENSTEP; \
elif [ "$(TARGET_OS)" = macos ]; then \
echo -DMACOSX; \
fi` $(RC_CFLAGS) $(OTHER_CFLAGS) -g" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)" \
--targetos="$(TARGET_OS)" \
--bison="$(BISON)" \
$(BOOTSTRAP)
install_no_src: install_bison
if [ "$(TARGET_OS)" = nextstep -o "$(TARGET_OS)" = teflon \
-o "$(TARGET_OS)" = macos ]; then \
./build_gcc --fats \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="`if [ \( ! "$(TARGET_OS)" \
-o "$(TARGET_OS)" = nextstep \) \
-a ! -f /usr/bin/uname ]; then \
echo -DOPENSTEP; \
elif [ "$(TARGET_OS)" = macos ]; then \
echo -DMACOSX; \
fi` $(RC_CFLAGS) $(OTHER_CFLAGS)" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)" \
--targetos="$(TARGET_OS)" && \
if [ ! -f /usr/bin/uname ]; then \
install -m 555 cc++ $(DSTROOT)/bin && \
install -m 555 ld++ $(DSTROOT)/bin; \
fi; \
fi
install: installhdrs build install_no_src
if [ "$(TARGET_OS)" = macos -o "$(RC_RELEASE)" = Flask ]; then \
$(MKDIRS) $(DSTROOT)/usr/local/lib/gcc/darwin/2.7.2.1 && \
mv $(DSTROOT)/usr/libexec $(DSTROOT)/usr/local && \
$(RM) -f $(DSTROOT)/usr/lib/libcc.a && \
mv $(DSTROOT)/usr/lib/libcc*.a \
$(DSTROOT)/usr/local/lib/gcc/darwin/2.7.2.1 && \
cd $(DSTROOT)/usr/local/lib && \
ln -s gcc/darwin/2.7.2.1/libcc*.a . && \
rmdir $(DSTROOT)/usr/lib && \
cd $(DSTROOT)/usr/local/libexec/gcc/darwin && \
for dir in *; do \
cd $(DSTROOT)/usr/local/libexec/gcc/darwin/$$dir && \
ln -s */cc1objplus . && \
if [ "$(RC_RELEASE)" = Flask ]; then \
$(MKDIRS) $(DSTROOT)/usr/libexec/$$dir && \
cd $(DSTROOT)/usr/libexec/$$dir && \
ln -s ../../local/libexec/$$dir/2.7.2.1 .; \
fi; \
done; \
fi
if [ "$(TARGET_OS)" = nextstep -o "$(TARGET_OS)" = teflon ]; then \
$(MKDIRS) $(DSTROOT)/usr/local/RelNotes && \
install -c -m 444 CompilerPrivate.rtf \
$(DSTROOT)/usr/local/RelNotes && \
install -c -m 444 PowerPC_Compiler.rtf \
$(DSTROOT)/usr/local/RelNotes; \
fi
if [ \( "$(TARGET_OS)" = nextstep -o "$(TARGET_OS)" = teflon \
-o "$(TARGET_OS)" = macos \) -a "$$CHROOTED" ]; then \
echo "** cleaning unnessecary objects **"; \
$(RM) -Rf $(OBJROOT)/cc-*-on-* $(OBJROOT)/bison_*_obj; \
fi
bootstrap: bootstrap_bison
./build_gcc --fats \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS)" \
--hosts=$(ARCH) \
--targets="$(RC_ARCHS)"
clean: clean_bison
./build_gcc --clean \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="`if [ \( ! "$(TARGET_OS)" \
-o "$(TARGET_OS)" = nextstep \) \
-a ! -f /usr/bin/uname ]; then \
echo -DOPENSTEP; \
elif [ "$(TARGET_OS)" = macos ]; then \
echo -DMACOSX; \
fi` $(RC_CFLAGS) $(OTHER_CFLAGS)" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"
installsrc: SRCROOT
if [ $(SRCROOT) != . ]; then \
$(MKDIRS) $(SRCROOT)/cc; \
gnutar cf - `ls -1 | egrep -v '^(obj|dst|sym|SGS)'` \
| (cd $(SRCROOT); gnutar xvf -); \
fi
find "$(SRCROOT)" \
\( -name \*~ -o -name \*\ -o -name \*.old -o -name \*.new -o -name .dir\* -o -name .nfs\* \) \
-exec $(RM) -f {} \;
installGNUsrc: installsrc
if [ "$(TARGET_OS)" = nextstep -o "$(TARGET_OS)" = teflon \
-o "$(TARGET_OS)" = macos ]; then \
$(CHOWN) -f -R root.wheel $(SRCROOT); \
fi
chmod -f -R a+r-w+X $(SRCROOT)
find $(SRCROOT) -type d -exec chmod -f 755 {} \;
$(RM) -rf $(SRCROOT)/../bison
if [ -f /usr/bin/uname ]; then \
$(RM) -rf $(SRCROOT)/bison; \
else \
mv $(SRCROOT)/bison $(SRCROOT)/..; \
fi
$(RM) -rf $(SRCROOT)/../gcc
mv $(SRCROOT)/cc $(SRCROOT)/../gcc
$(RM) -rf $(SRCROOT)
installhdrs: DSTROOT
if [ "$(TARGET_OS)" = teflon -o "$(TARGET_OS)" = macos \
-o -f /usr/bin/uname ]; then \
hdr_dir=$(DSTROOT)/` \
if [ -f /usr/bin/uname -a "$(TARGET_OS)" = macos ]; then \
echo usr/local/include/gcc/darwin/2.7.2.1; \
else \
if [ -f /usr/bin/uname ]; then \
echo System/Library/Frameworks/System.framework/Versions/B/Headers/bsd; \
else echo NextLibrary/Frameworks/System.framework/Versions/B/Headers/bsd; \
fi; \
fi`; \
$(MKDIRS) $$hdr_dir/machine && \
cd cc && \
for file in assert ginclude/stdarg ginclude/varargs ../float; \
do \
install -c -m 444 $$file.h $$hdr_dir; \
done && \
$(RM) -f /tmp/limits.$$$$ && \
echo ' echo ' echo ' echo ' echo ' echo ' echo ' echo ' echo ' echo ' cat glimits.h >>/tmp/limits.$$$$ && \
install -c -m 444 /tmp/limits.$$$$ $$hdr_dir/machine/limits.h && \
$(RM) -f /tmp/limits.$$$$; \
fi
if [ "$(TARGET_OS)" = nextstep -a ! -f /usr/bin/uname ]; then \
$(MKDIRS) $(DSTROOT)/LocalDeveloper/Headers/machine && \
touch $(DSTROOT)/LocalDeveloper/Headers/machine/ansi.h && \
$(CHOWN) -f -R root.wheel $(DSTROOT)/LocalDeveloper && \
chmod -f -R a+r-w+X $(DSTROOT)/LocalDeveloper; \
fi
DSTROOT:
$(MKDIRS) $(DSTROOT)
SRCROOT:
@if [ -n "$($@)" ]; \
then \
exit 0; \
else \
echo Must define $@; \
exit 1; \
fi
build_bison: $(OBJROOT)/bison_$(ARCH)_obj/Makefile
(cd $(OBJROOT)/bison_$(ARCH)_obj; \
$(make) CFLAGS="-O $(RC_CFLAGS) $(OTHER_CFLAGS)" \
LDFLAGS="$(RC_CFLAGS) `case "$(TARGET_OS)" in *solaris* | *hpux*) \
echo -nopdolib ;; \
esac`" \
datadir="`case "$(TARGET_OS)" in *win*) \
echo /Developer/Executables/Support ;; \
*solaris* | *hpux*) echo /Local/Libraries ;; \
*) echo /usr/local/lib ;; \
esac`" \
exeext="`case "$(TARGET_OS)" in *win*) echo .exe ;; esac`" \
SHELL="$(SHELL)")
bootstrap_bison: $(OBJROOT)/bison_$(ARCH)_obj/Makefile
(cd $(OBJROOT)/bison_$(ARCH)_obj; \
$(make) CFLAGS="-g" \
LDFLAGS="" \
exeext="`case "$(TARGET_OS)" in *win*) echo .exe ;; esac`")
$(OBJROOT)/bison_$(ARCH)_obj:
$(MKDIRS) $(OBJROOT)/bison_$(ARCH)_obj
$(OBJROOT)/bison_$(ARCH)_obj/Makefile: $(OBJROOT)/bison_$(ARCH)_obj
(cd $(OBJROOT)/bison_$(ARCH)_obj; \
eval `case "$(TARGET_OS)" in *win*) \
echo CONFIG_SHELL=sh \
CC=\"$$NEXT_ROOT/Developer/Executables/gcc\" ;; \
esac` \
$(SRCROOT)/bison/configure \
--bindir="`case "$(TARGET_OS)" in *win*) \
echo /Developer/Executables/Utilities ;; \
*solaris* | *hpux*) echo /Local/Executables ;; \
*) echo /usr/local/bin ;; \
esac`" \
--datadir="`case "$(TARGET_OS)" in *win*) \
echo /Developer/Executables/Support ;; \
*solaris* | *hpux*) echo /Local/Libraries ;; \
*) echo /usr/local/lib ;; \
esac`")
install_bison: build_bison
$(MKDIRS) $(DSTROOT)/`case "$(TARGET_OS)" in *solaris* | *hpux*)\
echo Local ;; \
*) echo usr/local ;; \
esac`
(cd $(OBJROOT)/bison_$(ARCH)_obj; \
$(make) install \
CFLAGS="$(RC_CFLAGS) $(OTHER_CFLAGS)" \
LDFLAGS="$(RC_CFLAGS)" \
prefix="$(DSTROOT)/`case "$(TARGET_OS)" in *solaris* | *hpux*)\
echo Local ;; \
*) echo usr/local ;; \
esac`" \
bindir="$(DSTROOT)/`case "$(TARGET_OS)" in *win*) \
echo Developer/Executables/Utilities ;; \
*solaris* | *hpux*) echo Local/Executables ;; \
*) echo usr/local/bin ;; \
esac`" \
datadir="$(DSTROOT)/`case "$(TARGET_OS)" in *win*) \
echo Developer/Executables/Support ;; \
*solaris* | *hpux*) echo Local/Libraries ;; \
*) echo usr/local/lib ;; \
esac`" \
exeext="`case "$(TARGET_OS)" in *win*) echo .exe ;; esac`")
clean_bison:
if [ -d $(OBJROOT)/obj.bison ]; then \
cd $(OBJROOT)/obj.bison; \
$(MAKE) clean \
exeext="`case "$(TARGET_OS)" in *win*) echo .exe ;; esac`"; \
fi
lib_ofiles:
./build_gcc --lib_ofiles \
--srcroot=$(SRC) \
--dstroot=$(DSTROOT) \
--objroot=$(OBJROOT) \
--symroot=$(SYMROOT) \
--cflags="$(RC_CFLAGS)" \
--hosts="$(RC_ARCHS)" \
--targets="$(TARGETS)"