# Location of the gcc source tree and version: GCC_SRC = /home/alex/40meg/gcc-2.7.2 GCC_VERSION = 2.7.2 CFLAGS=-O2 LDFLAGS=-s # Special values for building a DOS version under Linux ifdef XDOS CC = gcc-go32 LD = gcc-go32 CXX = gcc-go32 LDXX = gcc-go32 LDFLAGS += -lgpp CFLAGS += -DEXECUTABLE_SUFFIX='\".exe\"' EXE = .exe GCC_MAKE_ARGS = CC=gcc-go32 HOST_CC=cc HOST_PREFIX=loser- MTAG = win95 else MTAG = `uname` endif GCC_MAKE_ARGS += CFLAGS="$(CFLAGS)" LDFLAGS=$(LDFLAGS) CLASS_OPTS = $(CFLAGS) .EXPORT_ALL_VARIABLES: ### begin common section ### INSTALL = install VERSION_TAG := $(shell date +%y%m%d)-$(MTAG) ROOT = /tmp CLASS_SRC = ./class MKDIRHIER = mkdir -p INSTLIB = $(ROOT)/lib/gcc-lib/saturn-local-hp48/$(GCC_VERSION) INSTBIN = $(ROOT)/bin INSTPUB = $(ROOT)/saturn-local-hp48 PUBDIRS := $(shell find $(shell cat make.pubfiles) -prune -type d) PUBFILES := $(shell find $(shell cat make.pubfiles) -prune -type f) default: usr-tree build-lib: usr-tree1 FORCE $(MAKE) -C lib-source install \ LIBDIR=$(INSTLIB) HPDIR=$(INSTPUB)/download \ CC="$(INSTBIN)/xgcc -B$(INSTLIB)/ -I../../include" \ CFLAGS="" CP="$(INSTALL_DATA)" zip: hp48xgcc-$(VERSION_TAG).zip USR_TREE = 'foreach $$t("cccp", "xgcc", "cc1") { \ if(-e $$t && !-e "$$t$(EXE)") { unlink $$t; } \ elsif(!-e $$t && -e "$$t$(EXE)") { unlink "$$t$(EXE)"; } }' usr-tree: FORCE cd $(GCC_SRC); perl -e $(USR_TREE) $(MAKE) -C $(GCC_SRC) $(GCC_MAKE_ARGS) xgcc cc1 cccp $(MAKE) -e -C $(CLASS_SRC) $(MAKE) -e -C objdump usr-tree1: $(INSTLIB) $(INSTBIN) public-files \ $(INSTBIN)/xgcc$(EXE) $(INSTLIB)/cc1$(EXE) $(INSTLIB)/specs \ $(INSTLIB)/ld$(EXE) $(INSTLIB)/as$(EXE) $(INSTLIB)/cpp$(EXE) \ $(INSTBIN)/objdump $(addprefix $(INSTPUB)/,$(PUBDIRS)): $(INSTALL) -d $@ $(addprefix $(INSTPUB)/,$(PUBFILES)): $(INSTPUB)/%: % $(INSTALL_DATA) $? $@ public-files: $(addprefix $(INSTPUB)/,$(PUBDIRS)) \ $(addprefix $(INSTPUB)/,$(PUBFILES)) hp48xgcc-$(VERSION_TAG).zip: usr-tree cd $(ROOT) && zip -uyr $@ usr $(INSTBIN)/xgcc$(EXE): $(GCC_SRC)/xgcc$(EXE) $(INSTALL_PROG) $? $@ $(INSTLIB)/cc1$(EXE): $(GCC_SRC)/cc1$(EXE) $(INSTALL_PROG) $? $@ $(INSTLIB)/cpp$(EXE): $(GCC_SRC)/cccp$(EXE) $(INSTALL_PROG) $? $@ $(INSTLIB)/ld$(EXE): $(CLASS_SRC)/clld$(EXE) $(INSTALL_PROG) $? $@ $(INSTLIB)/as$(EXE): $(CLASS_SRC)/class$(EXE) $(INSTALL_PROG) $? $@ $(INSTLIB)/specs: gcc-target/specs $(INSTALL_DATA) gcc-target/specs $@ $(INSTBIN)/objdump: objdump/objdump $(INSTALL_PROG) $? $@ $(INSTLIB) $(INSTBIN): $(INSTALL) -d $@ clean: FORCE $(MAKE) -C class clean .PHONY: FORCE