# @(#)Makefile 1.1 94/10/31 SMI # # Makefile for /lib/compile (driver for cc, f77, pc, m2c, lint, ...) # # ----------------------------------------------------------------------------- # RELEASE=32 for Release 3.x version. # RELEASE=40 for Release 4.0 version. # RELEASE=41 for Release 4.1 version. RELEASE = 41 # RELEASE_NAME=3.x for Release 3.x version. # RELEASE_NAME=4.0 for Release 4.0 version. # RELEASE_NAME=4.1 for Release 4.1 version. RELEASE_NAME = 4.1 # SRCDIR=. for Sys-V version. # SRCDIR=../../lang/compile for UCB version. SRCDIR = . # ORIENTATION= for default version (/lib/compile). # ORIENTATION=-DFORCE_SYS5 for forced Sys-V version. # ORIENTATION=-DFORCE_UCB for forced UCB version. ORIENTATION = -DFORCE_SYS5 # VROOT=../vroot for Sys-V version. # VROOT=../../lang/vroot for UCB version. VROOT = ../vroot # INCLUDE=/usr/include for regular 3.x/4.0 version. # INCLUDE=/usr/5include for Sys-V 3.x/4.0 version # INCLUDE=/usr/include for Sys-V/UCB 4.1 version INCLUDE = /usr/include # LIB=/lib for UCB 3.x version # LIB=/usr/5lib for Sys-V 3.x version # LIB=/usr/lib for UCB 4.0 version # LIB=/usr/5lib for Sys-V 4.0 version # LIB=/usr/5lib for Sys-V 4.1 version # LIB=/usr/lib for UCB 4.1 version LIB = /usr/5lib # BIN=/bin for Release 3.x version. # BIN=/usr/bin for Release 4.x version. BIN = /usr/bin # ----------------------------------------------------------------------------- ROOT = DESTDIR = OWN = bin GRP = bin MODE = 755 INSTALL = install -c INSTALL_CMD= ${INSTALL} -s -m ${MODE} -o ${OWN} -g ${GRP} MAKEOBJ = compile ARCH:sh = /bin/arch CC = /usr/ucb/cc CPP = /lib/cpp LINT = /usr/bin/lint # # -DRELEASE= is used for making a version to run natively # under SunOS release (n=32 for 3.x, or 4x for 4.x). # INCL_FLAGS are flags for preprocessor file-inclusion, typically -I. INCL_FLAGS= -I$(SRCDIR) -I$(VROOT) $(X_INC) -I${ROOT}${INCLUDE} # FEATURES specify which features are to be compiled into the driver. # # -DCROSS provides cross-compiler support. # # -DNSE provides runtime support for NSE. # -DCROSS is a prerequisite for -DNSE. # # -DBROWSER provides support for the Code Browser. # It has no prerequisite features. # # We include them all, by default. FEATURES= -DCROSS -DNSE -DBROWSER # xCPPFLAGS are our flags for /lib/cpp. xCPPFLAGS = ${INCL_FLAGS} -DRELEASE=$(RELEASE) $(ORIENTATION) $(FEATURES) $(X_DEF) -D$(ARCH) COPTS = -O CFLAGS = $(COPTS) $(xCPPFLAGS) LDFLAGS = LIBS = LINTFLAGS = -x $(xCPPFLAGS) xLINKS = xcc xm2c xf77 xpc xlint XLINKS = Xcc Xm2c Xf77 Xpc Xlint # testing variables (for running tests) TEST = run TESTDIR2= test_dir2 XCROSS=sun2 sun3 sun3x sun4 DRIVERS=cc f77 lint m2c pc # # Driver sources and headers. # ROCSRCS = $(SRCDIR)/ro_data.c CSRCS = $(SRCDIR)/compile.c $(SRCDIR)/driver_version.c \ $(SRCDIR)/rw_data.c $(SRCDIR)/ro_data.c \ $(SRCDIR)/run_pass.c $(SRCDIR)/setup.c $(SRCDIR)/setup_cc.c \ $(SRCDIR)/setup_f77.c $(SRCDIR)/setup_lint.c \ $(SRCDIR)/setup_m2c.c $(SRCDIR)/setup_pc.c HDRS = $(SRCDIR)/driver.h $(VROOT)/report.h $(VROOT)/vroot.h SRCS = $(ROSRCS) $(CSRCS) $(HDRS) # # Driver objects. # LINTS = compile.ln rw_data.ln ro_data.ln run_pass.ln setup.ln setup_cc.ln \ setup_f77.ln setup_lint.ln setup_m2c.ln setup_pc.ln ROOBJS = ro_data.o COBJS = compile.o driver_version.o rw_data.o run_pass.o setup.o setup_cc.o \ setup_f77.o setup_lint.o setup_m2c.o setup_pc.o OBJS = $(ROOBJS) $(COBJS) # # Browser stuff # BROWSER_DIR-sun3 = ../browser/cblib/m68k BROWSER_DIR-sun4 = ../browser/cblib/sparc BROWSER_DIR = $(BROWSER_DIR$(TARGET_ARCH)) # # Production rules for driver. # all: ${MAKEOBJ} # "make bootstrap" can be used to make a native driver, on a pre-SunOS4.1 # system. See the "boostrap := " line above. bootstrap: ${MAKEOBJ} compile: $(BROWSER_DIR)/libcb.a $(OBJS) $(VROOT)/vroot.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(VROOT)/vroot.a $(XLINKS) $(xLINKS): rm -f $@; ln -s compile $@ xlinks: $(xLINKS) Xlinks: $(XLINKS) $(COBJS): $(HDRS) $(CC) $(CFLAGS) -c -o $(@F) $(SRCDIR)/`basename $(@F) .o`.c $(VROOT)/vroot.a $(VROOT)/report.h $(VROOT)/vroot.h: cd $(@D); $(MAKE) $(@F) $(BROWSER_DIR)/libcb.a: FRC cd $(@D) ; $(MAKE) $(@F) FRC: .c.ln: $(LINT) $(LINTFLAGS) -i $*.c # read-only (sharable) data ro_data.o: $(SRCDIR)/ro_data.c $(CC) $(CFLAGS) -c $(SRCDIR)/ro_data.c -R lint: $(LINTS) lint $(LINTS) $(LINTFLAGS) lang_info: FRC if [ -f lang_info ] ; then rm -f lang_info ; fi echo "# For use by compiler drivers." > lang_info; \ echo "# prod version OS-version" >>lang_info; \ echo "c ${RELEASE_NAME} ${RELEASE_NAME}" >>lang_info; \ echo "lint ${RELEASE_NAME} ${RELEASE_NAME}" >>lang_info install: ${MAKEOBJ} install_lang_info $(INSTALL_CMD) -s compile $(DESTDIR)$(LIB)/compile install_lang_info: lang_info $(INSTALL) -m 644 -o ${OWN} -g ${GRP} lang_info \ $(DESTDIR)/usr/lib/lang_info install_cc: ${MAKEOBJ} $(INSTALL_CMD) -s compile $(DESTDIR)$(BIN)/cc install_lint: ${MAKEOBJ} $(INSTALL_CMD) -s compile $(DESTDIR)/usr/bin/lint install_f77: ${MAKEOBJ} if [ $(ARCH) = sun386 ] ; \ then \ $(INSTALL_CMD) compile $(DESTDIR)/usr/cluster/devel/base_devel/usr.bin/f77 ; \ cd $(DESTDIR)/usr/bin ; \ if [ -f $(DESTDIR)/usr/bin/f77 ] ; then rm -f $(DESTDIR)/usr/bin/f77 ; fi ; \ ln -s ../cluster/devel/base_devel/usr.bin/f77 $(DESTDIR)/usr/bin/f77 ; \ else \ $(INSTALL_CMD) -s compile $(DESTDIR)/usr/bin/f77 ; \ fi @echo "**Must add \"fortran\" entry to $(DESTDIR)/usr/lib/lang_info**" install_m2c: ${MAKEOBJ} $(INSTALL_CMD) -s compile $(DESTDIR)/usr/bin/m2c @echo "**Must add \"modula2\" entry to $(DESTDIR)/usr/lib/lang_info**" install_pc: ${MAKEOBJ} if [ $(ARCH) = sun386 ] ; \ then \ $(INSTALL_CMD) compile $(DESTDIR)/usr/cluster/devel/base_devel/usr.ucb/pc ; \ cd $(DESTDIR)/usr/ucb ; \ if [ -f $(DESTDIR)/usr/ucb/pc ] ; then rm -f $(DESTDIR)/usr/ucb/pc ; fi ; \ ln -s ../cluster/devel/base_devel/usr.ucb/pc $(DESTDIR)/usr/ucb/pc ; \ else \ $(INSTALL_CMD) -s compile $(DESTDIR)/usr/ucb/pc ; \ fi @echo "**Must add \"pascal\" entry to $(DESTDIR)/usr/lib/lang_info**" tags: $(SRCS) $(VROOT)/*.c ctags $(SRCS) $(VROOT)/*.c # Run tests for /lib/compile test: build @cd ${TESTDIR2} ; \ make ${TEST} RELEASE=${RELEASE} DRIVERS="${DRIVERS}" XCROSS="${XCROSS}" # Build tests for /lib/compile build: @if [ ! -d ${TESTDIR2} ] ; then mkdir ${TESTDIR2} ; fi @if [ ! -h ${TESTDIR2}/SCCS ] ; then ln -s ../SCCS/../${TESTDIR2}/SCCS ${TESTDIR2}/SCCS ; fi # # Miscellaneous production rules. # clean: rm -f $(OBJS) compile ocompile $(LINTS) *.BAK tags rm -f gen gen.o syscall.a # leave the links in for testing, they don't cause problems # rm -f $(xLINKS) $(XLINKS) depend: $(SRCS) rm -f makedep for i in $(CSRCS); do \ ( $(CPP) -M $(xCPPFLAGS) $$i >> makedep ); \ done echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep echo '$$r makedep' >>eddep echo 'w' >>eddep cp Makefile Makefile.bak ed - Makefile < eddep echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile echo '# see make depend above' >> Makefile rm -f eddep makedep # DO NOT DELETE THIS LINE -- make depend uses it compile.o: ./compile.c compile.o: ./driver.h compile.o: /usr/include/stdio.h compile.o: /usr/include/sys/types.h compile.o: /usr/include/sys/stdtypes.h compile.o: /usr/include/sys/sysmacros.h compile.o: /usr/include/sys/time.h compile.o: /usr/include/time.h compile.o: /usr/include/sys/stdtypes.h compile.o: /usr/include/sys/resource.h compile.o: /usr/include/sys/param.h compile.o: /usr/include/machine/param.h compile.o: /usr/include/sys/signal.h compile.o: /usr/include/vm/faultcode.h compile.o: /usr/include/sys/stdtypes.h compile.o: /usr/include/sys/types.h compile.o: ../vroot/report.h compile.o: /usr/include/stdio.h compile.o: ../vroot/vroot.h compile.o: /usr/include/stdio.h compile.o: /usr/include/alloca.h compile.o: /usr/include/signal.h compile.o: /usr/include/sys/signal.h compile.o: /usr/include/sys/types.h compile.o: /usr/include/sys/stat.h compile.o: /usr/include/sys/types.h compile.o: ./../browser/cblib/src/cb_init.h compile.o: ./../browser/cblib/src/array.h compile.o: ./../browser/cblib/src/cb_heap.h compile.o: ./../browser/cblib/src/cb_portability.h compile.o: ./../browser/cblib/src/cb_directory.h compile.o: ./../browser/cblib/src/hash.h compile.o: ./../browser/cblib/src/cb_literals.h compile.o: /usr/include/alloca.h driver_version.o: ./driver_version.c driver_version.o: /usr/include/stdio.h driver_version.o: /usr/include/sys/file.h driver_version.o: /usr/include/sys/types.h driver_version.o: /usr/include/sys/stdtypes.h driver_version.o: /usr/include/sys/sysmacros.h driver_version.o: /usr/include/sys/fcntlcom.h driver_version.o: /usr/include/sys/stdtypes.h driver_version.o: /usr/include/sys/stat.h driver_version.o: /usr/include/sys/types.h driver_version.o: ./driver.h driver_version.o: /usr/include/stdio.h driver_version.o: /usr/include/sys/types.h driver_version.o: /usr/include/sys/time.h driver_version.o: /usr/include/time.h driver_version.o: /usr/include/sys/stdtypes.h driver_version.o: /usr/include/sys/resource.h driver_version.o: /usr/include/sys/param.h driver_version.o: /usr/include/machine/param.h driver_version.o: /usr/include/sys/signal.h driver_version.o: /usr/include/vm/faultcode.h driver_version.o: /usr/include/sys/stdtypes.h driver_version.o: /usr/include/sys/types.h driver_version.o: ../vroot/report.h driver_version.o: /usr/include/stdio.h driver_version.o: ../vroot/vroot.h driver_version.o: /usr/include/stdio.h driver_version.o: /usr/include/alloca.h rw_data.o: ./rw_data.c rw_data.o: ./driver.h rw_data.o: /usr/include/stdio.h rw_data.o: /usr/include/sys/types.h rw_data.o: /usr/include/sys/stdtypes.h rw_data.o: /usr/include/sys/sysmacros.h rw_data.o: /usr/include/sys/time.h rw_data.o: /usr/include/time.h rw_data.o: /usr/include/sys/stdtypes.h rw_data.o: /usr/include/sys/resource.h rw_data.o: /usr/include/sys/param.h rw_data.o: /usr/include/machine/param.h rw_data.o: /usr/include/sys/signal.h rw_data.o: /usr/include/vm/faultcode.h rw_data.o: /usr/include/sys/stdtypes.h rw_data.o: /usr/include/sys/types.h rw_data.o: ../vroot/report.h rw_data.o: /usr/include/stdio.h rw_data.o: ../vroot/vroot.h rw_data.o: /usr/include/stdio.h rw_data.o: /usr/include/alloca.h ro_data.o: ./ro_data.c ro_data.o: ./driver.h ro_data.o: /usr/include/stdio.h ro_data.o: /usr/include/sys/types.h ro_data.o: /usr/include/sys/stdtypes.h ro_data.o: /usr/include/sys/sysmacros.h ro_data.o: /usr/include/sys/time.h ro_data.o: /usr/include/time.h ro_data.o: /usr/include/sys/stdtypes.h ro_data.o: /usr/include/sys/resource.h ro_data.o: /usr/include/sys/param.h ro_data.o: /usr/include/machine/param.h ro_data.o: /usr/include/sys/signal.h ro_data.o: /usr/include/vm/faultcode.h ro_data.o: /usr/include/sys/stdtypes.h ro_data.o: /usr/include/sys/types.h ro_data.o: ../vroot/report.h ro_data.o: /usr/include/stdio.h ro_data.o: ../vroot/vroot.h ro_data.o: /usr/include/stdio.h ro_data.o: /usr/include/alloca.h run_pass.o: ./run_pass.c run_pass.o: ./driver.h run_pass.o: /usr/include/stdio.h run_pass.o: /usr/include/sys/types.h run_pass.o: /usr/include/sys/stdtypes.h run_pass.o: /usr/include/sys/sysmacros.h run_pass.o: /usr/include/sys/time.h run_pass.o: /usr/include/time.h run_pass.o: /usr/include/sys/stdtypes.h run_pass.o: /usr/include/sys/resource.h run_pass.o: /usr/include/sys/param.h run_pass.o: /usr/include/machine/param.h run_pass.o: /usr/include/sys/signal.h run_pass.o: /usr/include/vm/faultcode.h run_pass.o: /usr/include/sys/stdtypes.h run_pass.o: /usr/include/sys/types.h run_pass.o: ../vroot/report.h run_pass.o: /usr/include/stdio.h run_pass.o: ../vroot/vroot.h run_pass.o: /usr/include/stdio.h run_pass.o: /usr/include/alloca.h run_pass.o: /usr/include/sys/wait.h run_pass.o: /usr/include/sys/stdtypes.h run_pass.o: /usr/include/sys/file.h run_pass.o: /usr/include/sys/types.h run_pass.o: /usr/include/sys/fcntlcom.h run_pass.o: /usr/include/sys/stdtypes.h run_pass.o: /usr/include/sys/stat.h run_pass.o: /usr/include/sys/types.h run_pass.o: /usr/include/ctype.h setup.o: ./setup.c setup.o: ./driver.h setup.o: /usr/include/stdio.h setup.o: /usr/include/sys/types.h setup.o: /usr/include/sys/stdtypes.h setup.o: /usr/include/sys/sysmacros.h setup.o: /usr/include/sys/time.h setup.o: /usr/include/time.h setup.o: /usr/include/sys/stdtypes.h setup.o: /usr/include/sys/resource.h setup.o: /usr/include/sys/param.h setup.o: /usr/include/machine/param.h setup.o: /usr/include/sys/signal.h setup.o: /usr/include/vm/faultcode.h setup.o: /usr/include/sys/stdtypes.h setup.o: /usr/include/sys/types.h setup.o: ../vroot/report.h setup.o: /usr/include/stdio.h setup.o: ../vroot/vroot.h setup.o: /usr/include/stdio.h setup.o: /usr/include/alloca.h setup_cc.o: ./setup_cc.c setup_cc.o: ./driver.h setup_cc.o: /usr/include/stdio.h setup_cc.o: /usr/include/sys/types.h setup_cc.o: /usr/include/sys/stdtypes.h setup_cc.o: /usr/include/sys/sysmacros.h setup_cc.o: /usr/include/sys/time.h setup_cc.o: /usr/include/time.h setup_cc.o: /usr/include/sys/stdtypes.h setup_cc.o: /usr/include/sys/resource.h setup_cc.o: /usr/include/sys/param.h setup_cc.o: /usr/include/machine/param.h setup_cc.o: /usr/include/sys/signal.h setup_cc.o: /usr/include/vm/faultcode.h setup_cc.o: /usr/include/sys/stdtypes.h setup_cc.o: /usr/include/sys/types.h setup_cc.o: ../vroot/report.h setup_cc.o: /usr/include/stdio.h setup_cc.o: ../vroot/vroot.h setup_cc.o: /usr/include/stdio.h setup_cc.o: /usr/include/alloca.h setup_f77.o: ./setup_f77.c setup_f77.o: ./driver.h setup_f77.o: /usr/include/stdio.h setup_f77.o: /usr/include/sys/types.h setup_f77.o: /usr/include/sys/stdtypes.h setup_f77.o: /usr/include/sys/sysmacros.h setup_f77.o: /usr/include/sys/time.h setup_f77.o: /usr/include/time.h setup_f77.o: /usr/include/sys/stdtypes.h setup_f77.o: /usr/include/sys/resource.h setup_f77.o: /usr/include/sys/param.h setup_f77.o: /usr/include/machine/param.h setup_f77.o: /usr/include/sys/signal.h setup_f77.o: /usr/include/vm/faultcode.h setup_f77.o: /usr/include/sys/stdtypes.h setup_f77.o: /usr/include/sys/types.h setup_f77.o: ../vroot/report.h setup_f77.o: /usr/include/stdio.h setup_f77.o: ../vroot/vroot.h setup_f77.o: /usr/include/stdio.h setup_f77.o: /usr/include/alloca.h setup_lint.o: ./setup_lint.c setup_lint.o: ./driver.h setup_lint.o: /usr/include/stdio.h setup_lint.o: /usr/include/sys/types.h setup_lint.o: /usr/include/sys/stdtypes.h setup_lint.o: /usr/include/sys/sysmacros.h setup_lint.o: /usr/include/sys/time.h setup_lint.o: /usr/include/time.h setup_lint.o: /usr/include/sys/stdtypes.h setup_lint.o: /usr/include/sys/resource.h setup_lint.o: /usr/include/sys/param.h setup_lint.o: /usr/include/machine/param.h setup_lint.o: /usr/include/sys/signal.h setup_lint.o: /usr/include/vm/faultcode.h setup_lint.o: /usr/include/sys/stdtypes.h setup_lint.o: /usr/include/sys/types.h setup_lint.o: ../vroot/report.h setup_lint.o: /usr/include/stdio.h setup_lint.o: ../vroot/vroot.h setup_lint.o: /usr/include/stdio.h setup_lint.o: /usr/include/alloca.h setup_lint.o: /usr/include/sys/file.h setup_lint.o: /usr/include/sys/types.h setup_lint.o: /usr/include/sys/fcntlcom.h setup_lint.o: /usr/include/sys/stdtypes.h setup_lint.o: /usr/include/sys/stat.h setup_lint.o: /usr/include/sys/types.h setup_m2c.o: ./setup_m2c.c setup_m2c.o: ./driver.h setup_m2c.o: /usr/include/stdio.h setup_m2c.o: /usr/include/sys/types.h setup_m2c.o: /usr/include/sys/stdtypes.h setup_m2c.o: /usr/include/sys/sysmacros.h setup_m2c.o: /usr/include/sys/time.h setup_m2c.o: /usr/include/time.h setup_m2c.o: /usr/include/sys/stdtypes.h setup_m2c.o: /usr/include/sys/resource.h setup_m2c.o: /usr/include/sys/param.h setup_m2c.o: /usr/include/machine/param.h setup_m2c.o: /usr/include/sys/signal.h setup_m2c.o: /usr/include/vm/faultcode.h setup_m2c.o: /usr/include/sys/stdtypes.h setup_m2c.o: /usr/include/sys/types.h setup_m2c.o: ../vroot/report.h setup_m2c.o: /usr/include/stdio.h setup_m2c.o: ../vroot/vroot.h setup_m2c.o: /usr/include/stdio.h setup_m2c.o: /usr/include/alloca.h setup_pc.o: ./setup_pc.c setup_pc.o: ./driver.h setup_pc.o: /usr/include/stdio.h setup_pc.o: /usr/include/sys/types.h setup_pc.o: /usr/include/sys/stdtypes.h setup_pc.o: /usr/include/sys/sysmacros.h setup_pc.o: /usr/include/sys/time.h setup_pc.o: /usr/include/time.h setup_pc.o: /usr/include/sys/stdtypes.h setup_pc.o: /usr/include/sys/resource.h setup_pc.o: /usr/include/sys/param.h setup_pc.o: /usr/include/machine/param.h setup_pc.o: /usr/include/sys/signal.h setup_pc.o: /usr/include/vm/faultcode.h setup_pc.o: /usr/include/sys/stdtypes.h setup_pc.o: /usr/include/sys/types.h setup_pc.o: ../vroot/report.h setup_pc.o: /usr/include/stdio.h setup_pc.o: ../vroot/vroot.h setup_pc.o: /usr/include/stdio.h setup_pc.o: /usr/include/alloca.h # DEPENDENCIES MUST END AT END OF FILE # IF YOU PUT STUFF HERE IT WILL GO AWAY # see make depend above