Annotation of researchv9/X11/src/X.V11R1/util/imake/sample.rules, revision 1.1.1.1

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)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.