|
|
1.1 ! root 1: /**/# ! 2: /**/# The Main rules ! 3: /**/# ! 4: ! 5: /* ! 6: * This is the standard rule for compiling system calls ! 7: */ ! 8: #define library_sysobj_rule() @@\ ! 9: .c.o: @@\ ! 10: $(CPP) -E -DPROF $*.c | $(AS) -o $*.o -Mx @@\ ! 11: -$(LD) -X -r -o profiled/$*.o $*.o @@\ ! 12: $(CPP) -E $*.c | $(AS) -o $*.o -Mx @@\ ! 13: -$(LD) -x -r -o a.out $*.o @@\ ! 14: mv a.out $*.o ! 15: ! 16: ! 17: /* ! 18: * ... and for other objects in libraries ! 19: */ ! 20: #define library_obj_rule() @@\ ! 21: .s.o: @@\ ! 22: $(CPP) $(DEFINES) -E -DPROF $*.s \ @@\ ! 23: | $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\ ! 24: -$(LD) -X -r -o profiled/$*.o $*.o @@\ ! 25: $(CPP) $(DEFINES) -E $*.s | $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\ ! 26: -$(LD) -x -r -o a.out $*.o @@\ ! 27: mv a.out $*.o @@\ ! 28: @@\ ! 29: .c.o: @@\ ! 30: $(CC) -p -c $(CFLAGS) $*.c @@\ ! 31: -$(LD) -X -r -o profiled/$*.o $*.o @@\ ! 32: $(CC) -c $(CFLAGS) $*.c @@\ ! 33: -$(LD) -x -r -o a.out $*.o @@\ ! 34: mv a.out $*.o ! 35: ! 36: ! 37: /* ! 38: * These two are used by things like csh... ! 39: */ ! 40: #define cxstr_obj_target(target) @@\ ! 41: target.o: target @@\ ! 42: ${XSTR} @@\ ! 43: ${CC} -c -R xs.c @@\ ! 44: mv -f xs.o target.o @@\ ! 45: rm -f xs.c ! 46: ! 47: #define cxstr_obj_rule() @@\ ! 48: .c.o: @@\ ! 49: ${CC} -E ${CFLAGS} $*.c | ${XSTR} -c - @@\ ! 50: ${CC} -c ${CFLAGS} x.c @@\ ! 51: mv -f x.o $*.o @@\ ! 52: rm -f x.c ! 53: ! 54: ! 55: /* ! 56: * Special library rules for generating files from the UTek library ! 57: */ ! 58: #define tools_library_obj_rule() @@\ ! 59: .s.o: @@\ ! 60: $(CPP) $(DEFINES) -E $*.s | $(AS) $(AFLAGS) -68020 -o $*.o -Mx @@\ ! 61: -$(LD) -x -r -o a.out $*.o @@\ ! 62: mv a.out $*.o @@\ ! 63: @@\ ! 64: .c.o: @@\ ! 65: $(CC) -c $(CFLAGS) $*.c @@\ ! 66: -$(LD) -x -r -o a.out $*.o @@\ ! 67: mv a.out $*.o ! 68: ! 69: #define library_target(libname) @@\ ! 70: all: lib/**/libname lib/**/libname/**/_p @@\ ! 71: lib/**/libname: $(OBJS) @@\ ! 72: ar cruf $@ $(OBJS) @@\ ! 73: lib/**/libname/**/_p: $(OBJS) @@\ ! 74: cd profiled; ar cruf ../$@ $(OBJS) ! 75: ! 76: #define tools_library_target(libname) @@\ ! 77: all: lib/**/libname @@\ ! 78: lib/**/libname: $(OBJS) @@\ ! 79: ar cru $@ $(OBJS) @@\ ! 80: ! 81: /* ! 82: * Note that '/*' plays havoc with cpp. So we use the equivalent '/?*'. ! 83: */ ! 84: #define multiple_library_target(libname,dirlist) @@\ ! 85: all: lib/**/libname lib/**/libname/**/_p @@\ ! 86: @@\ ! 87: lib/**/libname: dirlist @@\ ! 88: -mkdir tmp @@\ ! 89: for i in dirlist; do \ @@\ ! 90: (cd tmp; ar x ../$$i/lib$${i}); done @@\ ! 91: ar crf $@ `ls tmp/?*.o` @@\ ! 92: rm -rf tmp @@\ ! 93: lib/**/libname/**/_p: dirlist @@\ ! 94: -mkdir tmp @@\ ! 95: for i in dirlist; do \ @@\ ! 96: (cd tmp; ar x ../$$i/lib$${i}_p); done @@\ ! 97: ar crf $@ `ls tmp/?*.o` @@\ ! 98: rm -rf tmp @@\ ! 99: @@\ ! 100: dirlist: FRC @@\ ! 101: cd $@; $(IMAKE) $(MFLAGS) all @@\ ! 102: FRC: ! 103: ! 104: ! 105: /* ! 106: * This is a basic program target ! 107: */ ! 108: #define program_target(program, objlist) @@\ ! 109: program: objlist $(SYSOBJECTS) @@\ ! 110: $(CC) -o $@ objlist $(LDFLAGS) @@\ ! 111: $(XINU) $@ ! 112: ! 113: ! 114: /* ! 115: * This target can be called by all programs that are contained in ! 116: * a single c source file. ! 117: */ ! 118: #define simple_program_target(program,dest) @@\ ! 119: OBJS = program.$O @@\ ! 120: SRCS = program.c @@\ ! 121: @@\ ! 122: complex_program_target(program,dest) ! 123: ! 124: ! 125: /* ! 126: * This target is like simple_program_target() except that the dependency ! 127: * list is long (it must be provided in the Imakefile. ! 128: */ ! 129: #define complex_program_target(program,dest) @@\ ! 130: program: $(OBJS) $(SYSOBJECTS) @@\ ! 131: $(CC) -o $@ $(OBJS) $(LDFLAGS) @@\ ! 132: $(XINU) $@ @@\ ! 133: @@\ ! 134: install_program(program,dest) @@\ ! 135: depend_target() ! 136: ! 137: ! 138: /* ! 139: * Compile an assembler module that is kept in a .c file (like the ! 140: * system call library). ! 141: */ ! 142: #define casm_obj_target(basename) @@\ ! 143: basename.$O: basename.c @@\ ! 144: ${CC} -E basename.c | ${AS} -o basename.$O ! 145: ! 146: /* ! 147: * Install a non-executable file. ! 148: */ ! 149: #define install_non_exec(file,dest) @@\ ! 150: install:: file @@\ ! 151: install68 -c -m 0664 file $(DEST)/dest ! 152: ! 153: ! 154: /* ! 155: * Install a shell program. Must be named 'program'.sh. ! 156: */ ! 157: #define install_shell(program,dest) @@\ ! 158: install:: program.sh @@\ ! 159: install68 -c program.sh $(DEST)/dest/program ! 160: ! 161: #define install_program(program,dest) @@\ ! 162: install:: program @@\ ! 163: install68 -c program $(DEST)/dest ! 164: ! 165: #define install_multiple(list,dest) @@\ ! 166: install:: list @@\ ! 167: @for i in list; do \ @@\ ! 168: (set -x; install68 -c $$i $(DEST)/dest); \ @@\ ! 169: done ! 170: ! 171: #define install_library(libname,dest) @@\ ! 172: install:: lib/**/libname lib/**/libname/**/_p @@\ ! 173: install68 -c -r -x lib/**/libname \ @@\ ! 174: $(DEST)/dest/lib/**/libname.a @@\ ! 175: install68 -c -r -x lib/**/libname/**/_p \ @@\ ! 176: $(DEST)/dest/lib/**/libname/**/_p.a @@\ ! 177: @@\ ! 178: install_vax_library(libname,lib68) ! 179: ! 180: #define install_vax_library(libname,dest) @@\ ! 181: install:: lib/**/libname lib/**/libname/**/_p @@\ ! 182: install68 -c -r lib/**/libname \ @@\ ! 183: $(TOOLSDEST)/dest/lib/**/libname.a @@\ ! 184: install68 -c -r lib/**/libname/**/_p \ @@\ ! 185: $(TOOLSDEST)/dest/lib/**/libname/**/_p.a @@\ ! 186: ! 187: #define install_tools_library(libname,dest) @@\ ! 188: install:: lib/**/libname @@\ ! 189: install68 -c -r lib/**/libname \ @@\ ! 190: $(DEST)/dest/lib/**/libname.a @@\ ! 191: ! 192: /* ! 193: * Do an imake on multiple sub-directories. ! 194: */ ! 195: #define imake_multiple() @@\ ! 196: all: @@\ ! 197: @-for dir in `ls -F | egrep /`; do \ @@\ ! 198: (set -x; cd $$dir; $(IMAKE)); \ @@\ ! 199: done @@\ ! 200: @@\ ! 201: imake_multiple_install() ! 202: ! 203: ! 204: #define imake_multiple_install() @@\ ! 205: install:: @@\ ! 206: @-for dir in `ls -F | egrep /`; do \ @@\ ! 207: (set -x; cd $$dir; $(IMAKE) install); \ @@\ ! 208: done ! 209: ! 210: /* ! 211: * This makes the depend target given OBJS. ! 212: */ ! 213: #define DependComment '# define Dependencies for $(MACHINE)' ! 214: #define depend_target() @@\ ! 215: depend: @@\ ! 216: echo DependComment > $(MACHINE).depend @@\ ! 217: makedepend -s DependComment \ @@\ ! 218: -f $(MACHINE).depend \ @@\ ! 219: $(DEPEND_INCLUDES) \ @@\ ! 220: $(DEPEND_DEFINES) \ @@\ ! 221: $(INCLUDES) \ @@\ ! 222: $(SRCS)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.