1# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.88.8.1 2009/04/15 03:14:26 kensmith Exp $ 2# $OpenBSD: Makefile,v 1.19 2024/02/08 20:28:54 miod Exp $ 3 4.include <bsd.own.mk> 5 6.include "../Makefile.inc" 7 8CFLAGS+= -I. 9 10CFLAGS+= -g 11CFLAGS+= -DGENERATOR_FILE -DHAVE_CONFIG_H 12 13# Override LIBIBERTY set by Makefile.inc, We use our own for 14# build tools. 15LIBIBERTY= /usr/lib/libiberty.a 16 17.PATH: ${GCCDIR} ${GCCLIB}/libiberty 18 19#----------------------------------------------------------------------- 20# Determine content of variables used by the target/host config files 21 22# 23# The list of headers to go into tm.h 24# 25 26TARGET_INC+= options.h 27.if ${TARGET_ARCH} == "amd64" 28TARGET_INC+= i386/biarch64.h 29.endif 30.if ${TARGET_ARCH} == "hppa64" 31TARGET_INC+= pa/pa64-start.h 32.endif 33.if ${TARGET_ARCH} == "sh" 34TARGET_INC+= sh/little.h 35.endif 36.if ${TARGET_ARCH} != "arm" && ${TARGET_ARCH} != "mips64" && \ 37 ${TARGET_ARCH} != "mips64el" 38TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 39.endif 40.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" 41TARGET_INC+= ${GCC_CPU}/unix.h 42TARGET_INC+= ${GCC_CPU}/att.h 43.endif 44TARGET_INC+= dbxelf.h 45.if ${TARGET_ARCH} == "alpha" 46TARGET_INC+= alpha/elf.h 47TARGET_INC+= alpha/openbsd1.h 48.else 49TARGET_INC+= elfos.h 50.endif 51.if ${TARGET_ARCH} == "arm" 52TARGET_INC+= arm/elf.h 53TARGET_INC+= arm/aout.h 54TARGET_INC+= arm/openbsd1.h 55TARGET_INC+= arm/arm.h 56.endif 57.if ${TARGET_ARCH} == "sh" 58TARGET_INC+= sh/elf.h 59.endif 60TARGET_INC+= openbsd.h 61TARGET_INC+= openbsd-libpthread.h 62TARGET_INC+= openbsd-native.h 63.if ${TARGET_ARCH} == "powerpc" 64TARGET_INC+= rs6000/secureplt.h 65TARGET_INC+= freebsd-spec.h 66.endif 67.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" 68.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 69TARGET_INC+= ${GCC_CPU}/sysv4.h 70.endif 71.endif 72.if ${TARGET_ARCH} == "mips64" || ${TARGET_ARCH} == "mips64el" 73TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 74TM_DEFINES= MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_64 75.if ${TARGET_ARCH} == "mips64el" 76TM_DEFINES+= TARGET_ENDIAN_DEFAULT=0 77.endif 78.endif 79.if ${TARGET_ARCH} == "amd64" 80TARGET_INC+= ${GCC_CPU}/x86-64.h 81TARGET_INC+= ${GCC_CPU}/openbsd64.h 82.elif ${TARGET_ARCH} == "hppa64" 83TARGET_INC+= ${GCC_CPU}/openbsd64.h 84.elif ${TARGET_ARCH} == "sparc64" 85TARGET_INC+= ${GCC_CPU}/openbsd64.h 86.elif ${TARGET_ARCH} == "i386" 87TARGET_INC+= ${GCC_CPU}/openbsdelf.h 88.elif ${TARGET_ARCH} == "m88k" 89TARGET_INC+= ${GCC_CPU}/openbsdelf.h 90.else 91TARGET_INC+= ${GCC_CPU}/openbsd.h 92.endif 93TARGET_INC+= defaults.h 94 95.for H in ${TARGET_INC} 96.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 97.if exists($D/$H) 98TARGET_INC_FILES+= $D/$H 99.endif 100.endfor 101.endfor 102 103# 104# gtyp includes. 105# 106srcdir= ${GCCDIR} 107CPPLIB_H= ${GCCLIB}/libcpp/include/line-map.h \ 108 ${GCCLIB}/libcpp/include/cpplib.h 109SYMTAB_H= ${GCCLIB}/libcpp/include/symtab.h 110CPP_ID_DATA_H= ${CPPLIB_H} ${GCCLIB}/libcpp/include/cpp-id-data.h 111HASHTAB_H= ${GCCLIB}/include/hashtab.h 112SPLAY_TREE_H= ${GCCLIB}/include/splay-tree.h 113out_file= ${srcdir}/config/${GCC_CPU}/${GCC_CPU}.c 114tm_file_list= ${TARGET_INC_FILES} 115host_xm_file_list= ${.CURDIR}/auto-host.h ${GCCLIB}/include/ansidecl.h 116GTFILES_SRCDIR= ${srcdir} 117 118# Copied unchanged from gcc/Makefile.in 119GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \ 120 $(CPP_ID_DATA_H) $(host_xm_file_list) \ 121 $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \ 122 $(srcdir)/coverage.c $(srcdir)/rtl.h \ 123 $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \ 124 $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \ 125 $(srcdir)/ipa-reference.h $(srcdir)/output.h \ 126 $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 127 $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \ 128 $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 129 $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \ 130 $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 131 $(srcdir)/dojump.c $(srcdir)/tree-profile.c \ 132 $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 133 $(srcdir)/function.c $(srcdir)/except.h \ 134 $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 135 $(srcdir)/profile.c $(srcdir)/regclass.c \ 136 $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \ 137 $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \ 138 $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ 139 $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \ 140 $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \ 141 $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \ 142 $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \ 143 $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \ 144 $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \ 145 $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \ 146 $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \ 147 $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \ 148 $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \ 149 $(srcdir)/tree-ssa-structalias.c \ 150 $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \ 151 $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \ 152 153# The list of frontend directories to look into 154GTFILES_LANG_DIR_NAMES= cp objc 155 156# The list of language specific files for gengtype 157.for L in ${GTFILES_LANG_DIR_NAMES} c 158.if exists(${GCCDIR}/$L-config-lang.in) 159# Source the language config file 160L_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 161.else 162L_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 163.endif 164.for F in ${L_GTFILES} 165GTFILES_FILES+= $F 166GTFILES_LANGS+= $L 167.endfor 168.endfor 169GTFILES+= ${GTFILES_FILES} 170 171# 172# Tree definition files. 173# 174TREE_DEF_FILES= cp/cp-tree.def objc/objc-tree.def 175 176# 177# Option files. 178# 179OPT_FILES= c.opt common.opt 180 181.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt) 182OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt 183.endif 184 185.if exists(${.CURDIR}/${GCC_CPU}-openbsd.opt) 186OPT_FILES+= ${.CURDIR}/${GCC_CPU}-openbsd.opt 187.endif 188 189.if ${TARGET_ARCH} == "powerpc" 190OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt 191.endif 192 193.if ${TARGET_ARCH} == "sparc64" 194OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt 195.endif 196 197.if exists(${.CURDIR}/openbsd.opt) 198OPT_FILES+= ${.CURDIR}/openbsd.opt 199.endif 200 201#----------------------------------------------------------------------- 202# Build rules for header files and generator tools 203 204# Host config 205config.h: 206 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 207 HEADERS="auto-host.h ansidecl.h" \ 208 DEFINES="" \ 209 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 210 211GENSRCS+= config.h 212CLEANFILES+= cs-config.h 213 214# Build config 215bconfig.h: 216 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 217 HEADERS="auto-host.h ansidecl.h" \ 218 DEFINES="" \ 219 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 220.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 221 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 222.endif 223 224GENSRCS+= bconfig.h 225CLEANFILES+= cs-bconfig.h 226 227# tconfig.h 228tconfig.h: 229 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 230 HEADERS="auto-host.h ansidecl.h" \ 231 DEFINES="USED_FOR_TARGET" \ 232 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 233 234GENSRCS+= tconfig.h 235CLEANFILES+= cs-tconfig.h 236# Options 237optionlist: ${OPT_FILES} 238 awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET} 239 240options.h: optionlist 241 awk -f ${GCCDIR}/opt-functions.awk \ 242 -f ${GCCDIR}/opth-gen.awk \ 243 < ${.ALLSRC} > ${.TARGET} 244 245options.c: optionlist 246 awk -f ${GCCDIR}/opt-functions.awk \ 247 -f ${GCCDIR}/optc-gen.awk \ 248 -v header_name="config.h system.h coretypes.h tm.h" \ 249 < ${.ALLSRC} > ${.TARGET} 250GENONLY+= optionlist options.h options.c 251 252# Target machine config 253tm.h: 254 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 255 HEADERS="${TARGET_INC}" \ 256 DEFINES="${TM_DEFINES}" \ 257 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 258.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 259 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 260 261# XXX This is an ugly hack to make it search in our old dir too. 262 echo '#define GPLUSPLUS_TOOL_INCLUDE_DIR PREFIX"/include/g++/${GCC_TARGET}"' >> ${.TARGET} 263.endif 264 265GENSRCS+= tm.h 266CLEANFILES+= cs-tm.h 267 268# Target machine protos/preds. 269tm_p.h: 270 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 271 HEADERS="${GCC_CPU}/${GCC_CPU}-protos.h tm-preds.h" \ 272 DEFINES="" \ 273 /bin/sh ${GCCDIR}/mkconfig.sh tm_p.h 274 275GENSRCS+= tm_p.h 276CLEANFILES+= cs-tm_p.h 277 278# gencheck 279gencheck.h: ${TREE_DEF_FILES} 280.for F in ${TREE_DEF_FILES} 281 echo "#include \"$F\"" >> ${.TARGET} 282.endfor 283 touch ${.TARGET} 284 285GENSRCS+= gencheck.h 286 287 288# Source header for gtyp generator. 289gtyp-gen.h: ${GTFILES} 290 echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 291 echo "static const char * const srcdir = " >> ${.TARGET} 292 echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 293 echo "static const char * const lang_files[] = {" >> ${.TARGET} 294.for F in ${GTFILES_FILES} 295 echo "\"$F\", " >> ${.TARGET} 296.endfor 297 echo "NULL};" >> ${.TARGET} 298 echo "static const char * const langs_for_lang_files[] = {">> ${.TARGET} 299.for F in ${GTFILES_LANGS} 300 echo "\"$F\", " >> ${.TARGET} 301.endfor 302 echo "NULL};" >> ${.TARGET} 303 echo "static const char * const all_files[] = {" >> ${.TARGET} 304.for F in ${GTFILES} 305 echo "\"$F\", " >> ${.TARGET} 306.endfor 307 echo "NULL};" >> ${.TARGET} 308 echo "static const char * const lang_dir_names[] = {" >> ${.TARGET} 309.for F in c ${GTFILES_LANG_DIR_NAMES} 310 echo "\"$F\", " >> ${.TARGET} 311.endfor 312 echo "NULL};" >> ${.TARGET} 313 314GENSRCS+= gtyp-gen.h 315 316# Version header for gcov 317gcov-iov.h: 318 echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET} 319 320GENSRCS+= gcov-iov.h 321 322# Multilib config file 323multilib.h: 324 echo 'static const char *const multilib_raw[] = { \ 325 ". ;", NULL };' > ${.TARGET} 326 echo 'static const char *const multilib_matches_raw[] = { \ 327 NULL };' >> ${.TARGET} 328 echo 'static const char *multilib_extra = "";' >> ${.TARGET} 329 echo 'static const char *multilib_options = "";' >> ${.TARGET} 330 echo 'static const char *const multilib_exclusions_raw[] = { \ 331 NULL };' >> ${.TARGET} 332 333GENSRCS+= multilib.h 334 335configargs.h: 336 echo 'static const char configuration_arguments[] =' > ${.TARGET} 337 echo ' "OpenBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 338 echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 339 echo 'static const struct {' >> ${.TARGET} 340 echo ' const char *name, *value;' >> ${.TARGET} 341 echo '} configure_default_options[] = {' >> ${.TARGET} 342 echo ' { "NULL", "NULL" } };' >> ${.TARGET} 343 344GENSRCS+= configargs.h 345 346# Language spec files 347specs.h: 348 echo '#include "cp/lang-specs.h"' > ${.TARGET} 349 echo '#include "objc/lang-specs.h"' >> ${.TARGET} 350 351GENSRCS+= specs.h 352 353gstdint.h: 354 echo '#include "sys/types.h"' > ${.TARGET} 355 echo '#include "sys/stdint.h"' >> ${.TARGET} 356 357GENSRCS+= gstdint.h 358 359# Linked headers 360gthr-default.h: ${GCCDIR}/gthr-posix.h 361 ln -sf ${.ALLSRC} ${.TARGET} 362 363GENSRCS+= gthr-default.h 364 365.if ${TARGET_ARCH} == "arm" 366unwind.h: ${GCCDIR}/config/arm/unwind-arm.h 367 ln -sf ${.ALLSRC} ${.TARGET} 368.else 369unwind.h: ${GCCDIR}/unwind-generic.h 370 ln -sf ${.ALLSRC} ${.TARGET} 371.endif 372 373GENSRCS+= unwind.h 374 375# 376# gtype gunk 377# 378gengtype-lex.c: gengtype-lex.l 379 flex -ogengtype-lex.c ${.ALLSRC} 380 381gengtype-yacc.h gengtype-yacc.c: gengtype-yacc.y 382 yacc -d -o gengtype-yacc.c ${.ALLSRC} 383 384gengtype-yacc+%DIKED.c: gengtype-yacc.c 385 cat ${.ALLSRC} > ${.TARGET} 386 sed -e "s/xmalloc/malloc/g" \ 387 -e "s/xrealloc/realloc/g" \ 388 -e "s/malloc/xmalloc/g" \ 389 -e "s/realloc/xrealloc/g" \ 390 ${.ALLSRC} > ${.TARGET} 391 392GENSRCS+= gengtype-lex.c gengtype-yacc.h gengtype-yacc+%DIKED.c 393CLEANFILES+= gengtype-yacc.c gengtype-lex.d gengtype-yacc+%DIKED.d 394 395gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o errors.o \ 396 ${LIBIBERTY} 397 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 398CLEANFILES+= gengtype.d 399 400gtype-desc.h: gengtype 401 ./gengtype 402 touch ${.TARGET} 403 404gtype-desc.c: gtype-desc.h 405 406GENONLY+= gtype-desc.c gtype-desc.h 407CLEANFILES+= gt-*.h gtype-*.h 408 409# 410# Generator tools. 411# 412.for F in check checksum genrtl modes 413gen$F: gen$F.o errors.o ${LIBIBERTY} 414 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 415CLEANFILES+= gen$F.d 416.endfor 417CLEANFILES+= errors.d 418 419.for F in attr attrtab automata codes conditions config constants emit \ 420 extract flags opinit output peep preds recog 421gen$F: gen$F.o rtl.o read-rtl.o ggc-none.o vec.o min-insn-modes.o \ 422 gensupport.o print-rtl.o errors.o ${LIBIBERTY} 423 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 424CLEANFILES+= gen$F.d 425.endfor 426CLEANFILES+= rtl.d read-rtl.d ggc-none.d vec.d min-insn-modes.d \ 427 gensupport.d print-rtl.d 428 429gencondmd: gencondmd.o 430 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 431CLEANFILES+= gencondmd.d 432 433# 434# Generated .md files. 435# 436insn-conditions.md: gencondmd 437 ./gencondmd > ${.TARGET} 438GENSRCS+= insn-conditions.md 439 440# 441# Generated header files. 442# 443 444.for F in constants 445insn-$F.h: gen$F ${MD_FILE} 446 ./gen$F ${MD_FILE} > ${.TARGET} 447GENSRCS+= insn-$F.h 448.endfor 449 450.for F in attr codes config flags 451insn-$F.h: gen$F ${MD_FILE} insn-conditions.md 452 ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 453GENSRCS+= insn-$F.h 454.endfor 455 456# Header files with irregular names. 457genrtl.h: gengenrtl 458 ./gengenrtl -h > ${.TARGET} 459GENSRCS+= genrtl.h 460 461tm-preds.h: genpreds 462 ./genpreds -h ${MD_FILE} > ${.TARGET} 463GENSRCS+= tm-preds.h 464 465tm-constrs.h: genpreds 466 ./genpreds -c ${MD_FILE} > ${.TARGET} 467GENSRCS+= tm-constrs.h 468 469tree-check.h: gencheck 470 ./gencheck > ${.TARGET} 471GENSRCS+= tree-check.h 472 473insn-modes.h: genmodes 474 ./genmodes -h > ${.TARGET} 475GENSRCS+= insn-modes.h 476 477# 478# Generated source files. 479# 480.for F in attrtab automata emit extract opinit output peep preds recog 481insn-$F.c: gen$F ${MD_FILE} insn-conditions.md 482 ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 483GENONLY+= insn-$F.c 484.endfor 485 486.for F in conditions 487insn-$F.c: gen$F ${MD_FILE} 488 ./gen$F ${MD_FILE} > ${.TARGET} 489GENSRCS+= insn-$F.c 490.endfor 491 492# Source files with irregular names. 493insn-modes.c: genmodes 494 ./genmodes > ${.TARGET} 495GENONLY+= insn-modes.c 496 497min-insn-modes.c: genmodes 498 ./genmodes -m > ${.TARGET} 499GENSRCS+= min-insn-modes.c 500 501genrtl.c: gengenrtl 502 ./gengenrtl > ${.TARGET} 503GENONLY+= genrtl.c 504 505gencondmd.c: genconditions ${MD_FILE} 506 ./genconditions ${MD_FILE} > ${.TARGET} 507GENSRCS+= gencondmd.c 508 509#----------------------------------------------------------------------- 510# Build tools. 511 512GNTOOLS+= genattr genattrtab genautomata gencodes gencheck genchecksum \ 513 genconditions gencondmd genconfig genconstants genemit \ 514 genextract genflags gengenrtl gengtype genmodes genopinit \ 515 genoutput genpeep genpreds genrecog 516 517all: ${GNTOOLS} ${GENSRCS} ${GENONLY} 518 519#----------------------------------------------------------------------- 520# Fixups. 521 522# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 523# define PROG because we have multiple programs. 524# 525SRCS= errors.c genattr.c genattrtab.c \ 526 genautomata.c gencheck.c genchecksum.c gencodes.c \ 527 genconditions.c genconfig.c genconstants.c genemit.c \ 528 genextract.c genflags.c gengenrtl.c gengtype.c genmodes.c \ 529 genopinit.c genoutput.c genpeep.c genpreds.c genrecog.c \ 530 gensupport.c ggc-none.c print-rtl.c read-rtl.c rtl.c \ 531 vec.c 532 533SRCS+= ${GENSRCS} 534OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 535GENOBJS+= ${GENSRCS:N*.h:R:S/$/.o/g} 536CLEANFILES+= ${GENSRCS} ${GENONLY} ${GENOBJS} ${GNTOOLS} 537 538#----------------------------------------------------------------------- 539# Manual dependencies. 540.include "Makefile.dep" 541 542.include <bsd.prog.mk> 543# DO NOT DELETE 544