Annotation of performer/src/pfmakerules, Revision 1.1
1.1 ! flynnt 1: #-------------------------------------------------------------------------#
! 2: #-- pfmakerules - Common make rules for performer source --#
! 3: #-- example source. --#
! 4: #-------------------------------------------------------------------------#
! 5: #-- RCS version information --#
! 6: #-- $Revision: 1.13 $ --#
! 7: #-- $Date: 2000/10/04 01:40:22 $ --#
! 8: #-------------------------------------------------------------------------#
! 9:
! 10: #-------------------------------------------------------------------------#
! 11: #-- The default make target makes the OPENGL Dynamic Shared Object. --#
! 12: #-- The targets are: --#
! 13: #-- build debugging versions: dbg --#
! 14: #-- build optimized versions: opt --#
! 15: #-- build dynamic shared object versions: dso --#
! 16: #-- build debugging dynamic shared object versions: --#
! 17: #-- ddso --#
! 18: #-- remove all unneeded files after a build: clean --#
! 19: #-- remove all machine generated files: clobber --#
! 20: #-- --#
! 21: #-- --#
! 22: #-------------------------------------------------------------------------#
! 23:
! 24: #--
! 25: #-- generic targets
! 26: #--
! 27:
! 28: #-- make optimized dso version of program by default
! 29: default: dso
! 30:
! 31: #-- include Makedepend file if it exists
! 32: sinclude $(MKDEPFILE)
! 33:
! 34: #-- synonym targets
! 35: debug: dbg
! 36:
! 37: optimize: opt
! 38:
! 39: #-- make all versions of program
! 40: all: dbg opt dso ddso
! 41:
! 42: # for backwards compatability with pf2.2
! 43: oglall: all
! 44: ogldso: dso
! 45: oglddso: ddso
! 46: ogldbg: dbg
! 47: oglopt: opt
! 48:
! 49: dso: $(TARGETS:=.dso) \
! 50: $(TARGET:=.dso) \
! 51: $(LIBRARY:=.dso)
! 52: opt: $(TARGETS:=.opt) \
! 53: $(TARGET:=.opt) \
! 54: $(LIBRARY:=.opt)
! 55: dbg: $(TARGETS:=.dbg) \
! 56: $(TARGET:=.dbg) \
! 57: $(LIBRARY:=.dbg)
! 58: ddso: $(TARGETS:=.ddso) \
! 59: $(TARGET:=.ddso) \
! 60: $(LIBRARY:=.ddso)
! 61:
! 62: #-- clean up directories {remove junk}
! 63: clean:
! 64: if test -d DBG.$(PFABI); then cd DBG.$(PFABI) ; \
! 65: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 66: if test -d DBG.$(PFABI).IRISGL; then cd DBG.$(PFABI).IRISGL ; \
! 67: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 68: if test -d DBG.$(PFABI).OPENGL; then cd DBG.$(PFABI).OPENGL ; \
! 69: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 70: if test -d OPT.$(PFABI); then cd OPT.$(PFABI); \
! 71: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 72: if test -d OPT.$(PFABI).IRISGL; then cd OPT.$(PFABI).IRISGL ; \
! 73: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 74: if test -d OPT.$(PFABI).OPENGL; then cd OPT.$(PFABI).OPENGL ; \
! 75: rm -f ${OBJECTS} Makedepend core so_locations; cd .. ; fi
! 76:
! 77: #-- remove all machine-built files
! 78: clobber: clean
! 79: if test -d OPT.$(PFABI); then \
! 80: rm -rf OPT.$(PFABI); fi
! 81: if test -d OPT.$(PFABI).IRISGL ; then \
! 82: rm -rf OPT.$(PFABI).IRISGL ; fi
! 83: if test -d OPT.$(PFABI).OPENGL ; then \
! 84: rm -rf OPT.$(PFABI).OPENGL ; fi
! 85: if test -d DBG.$(PFABI); then \
! 86: rm -rf DBG.$(PFABI); fi
! 87: if test -d DBG.$(PFABI).IRISGL ; then \
! 88: rm -rf DBG.$(PFABI).IRISGL ; fi
! 89: if test -d DBG.$(PFABI).OPENGL ; then \
! 90: rm -rf DBG.$(PFABI).OPENGL ; fi
! 91: rm -f ${TARGETS} ${TARGET}
! 92:
! 93: #--
! 94: #-- TARGETS targets
! 95: #--
! 96:
! 97: $(TARGETS): $(@:=.dso)
! 98: @echo "Done"
! 99:
! 100: $(TARGETS:=.dbg): .MAKE
! 101: @echo "\nmaking DBG version of $@"
! 102: @if test ! -d DBG.$(PFABI) ; then \
! 103: mkdir -p DBG.$(PFABI) ; fi
! 104: @ rm -f $(@:S/.dbg//)
! 105: @cd DBG.$(PFABI); \
! 106: ${MAKE} -f ../Makefile OPTIMIZER="-g " \
! 107: LIBRARIES='$(PFLIB) ${SYSTEM_OPENGL} ${SYSTEM_STATIC}' \
! 108: $(@)cmd ; cd ..
! 109: @echo "making symbolic links to DBG versions"
! 110: ln -s DBG.$(PFABI)/$(@)cmd $(@:S/.dbg//) ;
! 111:
! 112: $(TARGETS:=.opt): .MAKE
! 113: @echo "\nmaking OPT version of $@"
! 114: @if test ! -d OPT.$(PFABI); then \
! 115: mkdir -p OPT.$(PFABI); fi
! 116: @ rm -f $(@:S/.opt//)
! 117: @cd OPT.$(PFABI) ; \
! 118: ${MAKE} -f ../Makefile OPTIMIZER="-O ${OLIMIT}" \
! 119: LIBRARIES='$(PFLIB) ${SYSTEM_OPENGL} ${SYSTEM_STATIC}' \
! 120: $(@)cmd ; cd ..
! 121: @echo "making symbolic links to OPT versions"
! 122: ln -s OPT.$(PFABI)/$(@)cmd $(@:S/.opt//) ;
! 123:
! 124: $(TARGETS:=.dso): .MAKE
! 125: @echo "\nmaking DSO version of $@"
! 126: @if test ! -d OPT.$(PFABI); then \
! 127: mkdir -p OPT.$(PFABI); fi
! 128: @ rm -f $(@:S/.dso//)
! 129: @cd OPT.$(PFABI); \
! 130: ${MAKE} -f ../Makefile OPTIMIZER="-O ${OLIMIT}" \
! 131: LIBRARIES='$(PFLIB) ${SYSTEM_OPENGL}' \
! 132: $(@)cmd ; cd ..
! 133: @echo "making symbolic links to DSO versions"
! 134: ln -s OPT.$(PFABI)/$(@)cmd $(@:S/.dso//);
! 135:
! 136: $(TARGETS:=.ddso): .MAKE
! 137: @echo "\nmaking OpenGL DDSO version of $@"
! 138: @if test ! -d DBG.$(PFABI) ; then \
! 139: mkdir -p DBG.$(PFABI) ; fi
! 140: @ rm -f $(@:S/.ddso//)
! 141: @cd DBG.$(PFABI) ; \
! 142: ${MAKE} -f ../Makefile OPTIMIZER="-g " \
! 143: LIBRARIES='$(PFLIB) ${SYSTEM_OPENGL}' \
! 144: $(@)cmd ; cd ..
! 145: @echo "making symbolic links to DDSO versions"
! 146: ln -s DBG.$(PFABI)/$(@)cmd $(@:S/.ddso//);
! 147:
! 148: #--
! 149: #-- internal TARGETS targets
! 150: #--
! 151:
! 152: .SUFFIXES: .dbgcmd .optcmd .dsocmd .ddsocmd
! 153:
! 154: .o.dbgcmd:
! 155: ${LINKERF} -o $@ $< $(DBGLINKS) -all ${LDOPTS} ${LIBRARIES}
! 156:
! 157: .o.optcmd:
! 158: ${LINKERF} -o $@ $< $(OPTLINKS) -all ${LDOPTS} ${LIBRARIES}
! 159:
! 160: .o.dsocmd:
! 161: ${LINKERF} -o $@ $< $(DSOLINKS) -all ${LDOPTS} ${LIBRARIES}
! 162:
! 163: .o.ddsocmd:
! 164: ${LINKERF} -o $@ $< $(DDSOLINKS) -all ${LDOPTS} ${LIBRARIES}
! 165:
! 166:
! 167: #--
! 168: #-- TARGET targets
! 169: #--
! 170:
! 171: #-- make a debugging version of the program
! 172: $(TARGET:=.dbg): .MAKE
! 173: @ echo "\nmaking DBG version of ${TARGET}"
! 174: @ if test ! -d DBG.$(PFABI) ; then \
! 175: mkdir -p DBG.$(PFABI) ; fi
! 176: @ cd DBG.$(PFABI) ; \
! 177: ${MAKE} -f ../Makefile OPTIMIZER="-g"\
! 178: LIBRARIES='$(PFLIB) -Wl,-none ${SYSTEM_OPENGL} ${SYSTEM_STATIC}' \
! 179: ${TARGET}.DBG
! 180: @ rm -f ${TARGET}
! 181: ln -s DBG.$(PFABI)/${TARGET}.DBG ${TARGET}
! 182:
! 183: #-- make an optimized version of the program
! 184: $(TARGET:=.opt): .MAKE
! 185: @ echo "making OPT version of ${TARGET}"
! 186: @ if test ! -d OPT.$(PFABI) ; then \
! 187: mkdir -p OPT.$(PFABI) ; fi
! 188: @ cd OPT.$(PFABI) ; ${MAKE} -f ../Makefile OPTIMIZER="-O " \
! 189: LIBRARIES='$(PFLIB) -Wl,-none ${SYSTEM_OPENGL} ${SYSTEM_STATIC}' \
! 190: ${TARGET}.OPT
! 191: @ rm -f ${TARGET}
! 192: ln -s OPT.$(PFABI)/${TARGET}.OPT ${TARGET}
! 193:
! 194: #-- make an optimized version of the program that uses DSOs
! 195: $(TARGET:=.dso): .MAKE
! 196: @ echo "making DSO version of ${TARGET}"
! 197: @ if test ! -d OPT.$(PFABI) ; then \
! 198: mkdir -p OPT.$(PFABI) ; fi
! 199: @ cd OPT.$(PFABI) ; ${MAKE} -f ../Makefile OPTIMIZER="-O " \
! 200: LIBRARIES='$(PFLIB) -Wl,-none ${SYSTEM_OPENGL}' \
! 201: ${TARGET}.DSO
! 202: @ rm -f ${TARGET}
! 203: ln -s OPT.$(PFABI)/${TARGET}.DSO ${TARGET}
! 204:
! 205: #-- make an optimized version of the program that uses DSOs
! 206: $(TARGET:=.ddso): .MAKE
! 207: @ echo "making DDSO version of ${TARGET}"
! 208: @ if test ! -d DBG.$(PFABI) ; then \
! 209: mkdir -p DBG.$(PFABI) ; fi
! 210: @ cd DBG.$(PFABI) ; ${MAKE} -f ../Makefile OPTIMIZER="-g" \
! 211: LIBRARIES='$(PFLIB) -Wl,-none ${SYSTEM_OPENGL}' \
! 212: ${TARGET}.DDSO
! 213: @ rm -f ${TARGET}
! 214: ln -s DBG.$(PFABI)/${TARGET}.DDSO ${TARGET}
! 215:
! 216:
! 217: #--
! 218: #-- internal TARGET targets
! 219: #--
! 220:
! 221: ${TARGET}.DBG: ${OBJECTS}
! 222: ${LINKERF} -o $@ ${OBJECTS} $(DBGLINKS) -all ${LDOPTS} ${LIBRARIES}
! 223:
! 224: ${TARGET}.OPT: ${OBJECTS}
! 225: ${LINKERF} -o $@ ${OBJECTS} $(OPTLINKS) -all ${LDOPTS} ${LIBRARIES}
! 226:
! 227: ${TARGET}.DSO: ${OBJECTS}
! 228: ${LINKERF} -o $@ ${OBJECTS} $(DSOLINKS) -all ${LDOPTS} ${LIBRARIES}
! 229:
! 230: ${TARGET}.DDSO: ${OBJECTS}
! 231: ${LINKERF} -o $@ ${OBJECTS} $(DDSOLINKS) -all ${LDOPTS} ${LIBRARIES}
! 232:
! 233:
! 234:
! 235: $(TARGETS:=.oglall):
! 236: @ echo "Target 'oglall' deprecated. Use 'all'."
! 237: @ ${MAKE} $(@:S/ogl//)
! 238:
! 239: $(TARGETS:=.ogldso):
! 240: @ echo "Target 'ogldso' deprecated. Use 'dso'."
! 241: ${MAKE} $(@:S/ogl//)
! 242:
! 243: $(TARGETS:=.oglddso):
! 244: @ echo "Target 'oglddso' deprecated. Use 'ddso'."
! 245: @ ${MAKE} $(@:S/ogl//)
! 246:
! 247: $(TARGETS:=.ogldbg):
! 248: @ echo "Target 'ogldbg' deprecated. Use 'dbg'."
! 249: @ ${MAKE} $(@:S/ogl//)
! 250:
! 251: $(TARGETS:=.oglopt):
! 252: @ echo "Target 'oglopt' deprecated. Use 'opt'."
! 253: @ ${MAKE} $(@:S/ogl//)
! 254:
! 255:
! 256: #--
! 257: #-- LIBRARY targets
! 258: #--
! 259:
! 260: #-- make a debugging version of the library
! 261: $(LIBRARY:=.dbg): .MAKE
! 262: @ echo "making DBG version of ${LIBRARY}"
! 263: @ if test ! -d DBG.$(PFABI) ; then \
! 264: mkdir -p DBG.$(PFABI) ; fi
! 265: @ cd DBG.$(PFABI) ; \
! 266: ${MAKE} -f ../Makefile OPTIMIZER=-g ${LIBRARY}.a
! 267: @ echo "${LIBRARY}.a done"
! 268:
! 269: #-- make an optimized version of the library
! 270: $(LIBRARY:=.opt): .MAKE
! 271: @ echo "making OPT version of ${LIBRARY}"
! 272: @ if test ! -d OPT.$(PFABI) ; then \
! 273: mkdir -p OPT.$(PFABI) ; fi
! 274: @ cd OPT.$(PFABI) ; \
! 275: ${MAKE} -f ../Makefile OPTIMIZER="-O ${OLIMIT}" ${LIBRARY}.a
! 276: @ echo "${LIBRARY}.a done"
! 277:
! 278: #-- make an optimized version of the library that uses DSOs
! 279: $(LIBRARY:=.dso): .MAKE
! 280: @ echo "making DSO version of ${LIBRARY}"
! 281: @ if test ! -d OPT.$(PFABI) ; then \
! 282: mkdir -p OPT.$(PFABI) ; fi
! 283: @ cd OPT.$(PFABI) ; \
! 284: ${MAKE} -f ../Makefile OPTIMIZER="-O ${OLIMIT}" ${LIBRARY}.so
! 285: @ echo "${LIBRARY}.so done"
! 286:
! 287: #-- make an debugging version of the library that uses DSOs
! 288: $(LIBRARY:=.ddso): .MAKE
! 289: @ echo "making DDSO version of ${LIBRARY}"
! 290: @ if test ! -d DBG.$(PFABI) ; then \
! 291: mkdir -p DBG.$(PFABI) ; fi
! 292: @ cd DBG.$(PFABI) ; \
! 293: ${MAKE} -f ../Makefile OPTIMIZER=-g ${LIBRARY}.so
! 294: @ echo "${LIBRARY}.so done"
! 295:
! 296:
! 297: #--
! 298: #-- internal LIBRARY targets
! 299: #--
! 300:
! 301: ${LIBRARY}.a: ${OBJECTS}
! 302: ar crv $@ $?
! 303:
! 304: ${LIBRARY}.so: ${OBJECTS}
! 305: ld -shared -all -check_registry $(DSOREGFILE) $(DSOVERSIONOPT) \
! 306: $(LDOPTS) $(OBJECTS) -o $@
! 307:
! 308:
! 309: #-- look for sources in this directory when recursing
! 310: .PATH: ..
! 311:
! 312:
! 313: #
! 314: #-- special rules for using pixie with profile
! 315: #
! 316:
! 317: # create a pixie version of profile
! 318: profile.pixie:
! 319: $(TOOLROOT)/usr/bin/pixie profile
! 320:
! 321: #-- runs prof -pixie on the using the data file produced by
! 322: #-- running profile.pixie
! 323: profit:
! 324: prof -procedures -i -l -pixie -quit 1% \
! 325: profile profile.Addrs profile.Counts
! 326:
! 327: #-- a speciall c++ version that will de-mangle c++ names
! 328: #-- requires /usr/lib/c++/c++filt
! 329: profit_c++:
! 330: prof -procedures -i -l -pixie -quit 1% \
! 331: profile profile.Addrs profile.Counts | \
! 332: $(TOOLROOT)/usr/lib/c++/c++filt
! 333:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>