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