|
|
researchv9-SUN3(old)
/**/#
/**/# The Main rules
/**/#
/*
* This is the standard rule for compiling system calls
*/
#define library_sysobj_rule() @@\
.c.o: @@\
$(CPP) -E -DPROF $*.c | $(AS) -o $*.o -Mx @@\
-$(LD) -X -r -o profiled/$*.o $*.o @@\
$(CPP) -E $*.c | $(AS) -o $*.o -Mx @@\
-$(LD) -x -r -o a.out $*.o @@\
mv a.out $*.o
/*
* ... and for other objects in libraries
*/
#define library_obj_rule() @@\
.s.o: @@\
$(CPP) $(DEFINES) -E -DPROF $*.s \ @@\
| $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\
-$(LD) -X -r -o profiled/$*.o $*.o @@\
$(CPP) $(DEFINES) -E $*.s | $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\
-$(LD) -x -r -o a.out $*.o @@\
mv a.out $*.o @@\
@@\
.c.o: @@\
$(CC) -p -c $(CFLAGS) $*.c @@\
-$(LD) -X -r -o profiled/$*.o $*.o @@\
$(CC) -c $(CFLAGS) $*.c @@\
-$(LD) -x -r -o a.out $*.o @@\
mv a.out $*.o
/*
* These two are used by things like csh...
*/
#define cxstr_obj_target(target) @@\
target.o: target @@\
${XSTR} @@\
${CC} -c -R xs.c @@\
mv -f xs.o target.o @@\
rm -f xs.c
#define cxstr_obj_rule() @@\
.c.o: @@\
${CC} -E ${CFLAGS} $*.c | ${XSTR} -c - @@\
${CC} -c ${CFLAGS} x.c @@\
mv -f x.o $*.o @@\
rm -f x.c
/*
* Special library rules for generating files from the UTek library
*/
#define tools_library_obj_rule() @@\
.s.o: @@\
$(CPP) $(DEFINES) -E $*.s | $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\
-$(LD) -x -r -o a.out $*.o @@\
mv a.out $*.o @@\
@@\
.c.o: @@\
$(CC) -c $(CFLAGS) $*.c @@\
-$(LD) -x -r -o a.out $*.o @@\
mv a.out $*.o
#define library_target(libname) @@\
all: lib/**/libname lib/**/libname/**/_p @@\
lib/**/libname: $(OBJS) @@\
ar cruf $@ $(OBJS) @@\
lib/**/libname/**/_p: $(OBJS) @@\
cd profiled; ar cruf ../$@ $(OBJS)
#define tools_library_target(libname) @@\
all: lib/**/libname @@\
lib/**/libname: $(OBJS) @@\
ar cru $@ $(OBJS) @@\
/*
* Note that '/*' plays havoc with cpp. So we use the equivalent '/?*'.
*/
#define multiple_library_target(libname,dirlist) @@\
all: lib/**/libname lib/**/libname/**/_p @@\
@@\
lib/**/libname: dirlist @@\
-mkdir tmp @@\
for i in dirlist; do \ @@\
(cd tmp; ar x ../$$i/lib$${i}); done @@\
ar crf $@ `ls tmp/?*.o` @@\
rm -rf tmp @@\
lib/**/libname/**/_p: dirlist @@\
-mkdir tmp @@\
for i in dirlist; do \ @@\
(cd tmp; ar x ../$$i/lib$${i}_p); done @@\
ar crf $@ `ls tmp/?*.o` @@\
rm -rf tmp @@\
@@\
dirlist: FRC @@\
cd $@; $(IMAKE) $(MFLAGS) all @@\
FRC:
/*
* This is a basic program target
*/
#define program_target(program, objlist) @@\
program: objlist $(SYSOBJECTS) @@\
$(CC) -o $@ objlist $(LDFLAGS) @@\
$(XINU) $@
/*
* This target can be called by all programs that are contained in
* a single c source file.
*/
#define simple_program_target(program,dest) @@\
OBJS = program.$O @@\
SRCS = program.c @@\
@@\
complex_program_target(program,dest)
/*
* This target is like simple_program_target() except that the dependency
* list is long (it must be provided in the Imakefile.
*/
#define complex_program_target(program,dest) @@\
program: $(OBJS) $(SYSOBJECTS) @@\
$(CC) -o $@ $(OBJS) $(LDFLAGS) @@\
$(XINU) $@ @@\
@@\
install_program(program,dest) @@\
depend_target()
/*
* Compile an assembler module that is kept in a .c file (like the
* system call library).
*/
#define casm_obj_target(basename) @@\
basename.$O: basename.c @@\
${CC} -E basename.c | ${AS} -o basename.$O
/*
* Install a non-executable file.
*/
#define install_non_exec(file,dest) @@\
install:: file @@\
install68 -c -m 0664 file $(DEST)/dest
/*
* Install a shell program. Must be named 'program'.sh.
*/
#define install_shell(program,dest) @@\
install:: program.sh @@\
install68 -c program.sh $(DEST)/dest/program
#define install_program(program,dest) @@\
install:: program @@\
install68 -c program $(DEST)/dest
#define install_multiple(list,dest) @@\
install:: list @@\
@for i in list; do \ @@\
(set -x; install68 -c $$i $(DEST)/dest); \ @@\
done
#define install_library(libname,dest) @@\
install:: lib/**/libname lib/**/libname/**/_p @@\
install68 -c -r -x lib/**/libname \ @@\
$(DEST)/dest/lib/**/libname.a @@\
install68 -c -r -x lib/**/libname/**/_p \ @@\
$(DEST)/dest/lib/**/libname/**/_p.a @@\
@@\
install_vax_library(libname,lib68)
#define install_vax_library(libname,dest) @@\
install:: lib/**/libname lib/**/libname/**/_p @@\
install68 -c -r lib/**/libname \ @@\
$(TOOLSDEST)/dest/lib/**/libname.a @@\
install68 -c -r lib/**/libname/**/_p \ @@\
$(TOOLSDEST)/dest/lib/**/libname/**/_p.a @@\
#define install_tools_library(libname,dest) @@\
install:: lib/**/libname @@\
install68 -c -r lib/**/libname \ @@\
$(DEST)/dest/lib/**/libname.a @@\
/*
* Do an imake on multiple sub-directories.
*/
#define imake_multiple() @@\
all: @@\
@-for dir in `ls -F | egrep /`; do \ @@\
(set -x; cd $$dir; $(IMAKE)); \ @@\
done @@\
@@\
imake_multiple_install()
#define imake_multiple_install() @@\
install:: @@\
@-for dir in `ls -F | egrep /`; do \ @@\
(set -x; cd $$dir; $(IMAKE) install); \ @@\
done
/*
* This makes the depend target given OBJS.
*/
#define DependComment '# define Dependencies for $(MACHINE)'
#define depend_target() @@\
depend: @@\
echo DependComment > $(MACHINE).depend @@\
makedepend -s DependComment \ @@\
-f $(MACHINE).depend \ @@\
$(DEPEND_INCLUDES) \ @@\
$(DEPEND_DEFINES) \ @@\
$(INCLUDES) \ @@\
$(SRCS)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.