From 7e310d2f71d9f74f0dde217d90cae819b42373ce Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Thu, 10 Jun 2004 10:31:29 +0000 Subject: [PATCH] Add Makefile support for host programs (.nx) just like we support normal programs with bsd.prog.mk. The difference is that bsd.hostprog.mk doesn't support man pages, scripts and builds ${PROG}.nx. --- share/mk/Makefile | 4 +-- share/mk/bsd.hostprog.mk | 64 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 share/mk/bsd.hostprog.mk diff --git a/share/mk/Makefile b/share/mk/Makefile index 66fa757d70..b0defdec64 100644 --- a/share/mk/Makefile +++ b/share/mk/Makefile @@ -1,5 +1,5 @@ # $FreeBSD: src/share/mk/Makefile,v 1.27.2.8 2002/07/22 14:21:51 ru Exp $ -# $DragonFly: src/share/mk/Makefile,v 1.7 2004/01/26 15:22:07 joerg Exp $ +# $DragonFly: src/share/mk/Makefile,v 1.8 2004/06/10 10:31:29 joerg Exp $ # @(#)Makefile 8.1 (Berkeley) 6/8/93 FILES= bsd.README @@ -11,7 +11,7 @@ FILES+= bsd.lib.mk bsd.libnames.mk bsd.links.mk bsd.man.mk FILES+= bsd.obj.mk bsd.own.mk FILES+= bsd.port.mk bsd.port.post.mk bsd.port.pre.mk bsd.port.subdir.mk FILES+= bsd.dfport.mk bsd.dfport.pre.mk bsd.dfport.post.mk -FILES+= bsd.prog.mk bsd.subdir.mk bsd.sys.mk +FILES+= bsd.hostprog.mk bsd.prog.mk bsd.subdir.mk bsd.sys.mk FILES+= sys.mk NOOBJ= noobj FILESDIR= ${BINDIR}/mk diff --git a/share/mk/bsd.hostprog.mk b/share/mk/bsd.hostprog.mk new file mode 100644 index 0000000000..da6540c6a5 --- /dev/null +++ b/share/mk/bsd.hostprog.mk @@ -0,0 +1,64 @@ +# $DragonFly: src/share/mk/bsd.hostprog.mk,v 1.1 2004/06/10 10:31:29 joerg Exp $ + +.include + +.SUFFIXES: .out .nx .no .c .cc .cpp .cxx .C .m .y .l .s .S + +.if defined(PROG_CXX) +PROG= ${PROG_CXX} +.endif + +.if !defined(SRCS) +.if defined(PROG_CXX) +SRCS= ${PROG}.cc +.else +SRCS= ${PROG}.c +.endif +.endif + +all: objwarn ${PROG}.nx + +.if defined(PROG) + +# If there are Objective C sources, link with Objective C libraries. +.if ${SRCS:M*.m} != "" +OBJCLIBS?= -lobjc +LDADD+= ${OBJCLIBS} +.endif + +OBJS+= ${SRCS:N*.h:N*.patch:R:S/$/.no/g} +_PATCHES= ${SRCS:M*.patch} +.for _PATCH in ${SRCS:T:N*.h.patch:M*.patch} +.for _OBJ in ${_PATCH:R:R:S/$/.no/} +OBJS:= ${OBJS:N${_OBJ}} ${_OBJ} +.endfor +.endfor +.undef _PATCHES + +${PROG}.nx: ${OBJS} +.if defined(PROG_CXX) + ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} +.else + ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} +.endif +.endif + +CLEANFILES+= ${PROG}.nx ${OBJS} + +all: ${PROG}.nx + +_EXTRADEPEND: + echo ${PROG}.nx: ${LIBC} ${DPADD} >> ${DEPENDFILE} +.if defined(PROG_CXX) + echo ${PROG}.nx: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} +.endif + +.include + +.if defined(PROG) && !exists(${.OBJDIR}/${DEPENDFILE}) +${OBJS}: ${SRCS:M*.h} +.endif + +.include + +.include -- 2.39.1