Makefile.usermode revision 1.17
11.17Sjmcneill# $NetBSD: Makefile.usermode,v 1.17 2011/09/03 15:00:27 jmcneill Exp $
21.1Sjmcneill
31.1SjmcneillMACHINE_ARCH=			usermode
41.1SjmcneillUSETOOLS?=			no
51.1SjmcneillNEED_OWN_INSTALL_TARGET?=	no
61.1Sjmcneill.include <bsd.own.mk>
71.1Sjmcneill
81.1Sjmcneill##
91.1Sjmcneill## (1) port identification
101.1Sjmcneill##
111.1SjmcneillUSERMODE=	$S/arch/usermode
121.1SjmcneillGENASSYM_CONF=	${USERMODE}/usermode/genassym.cf
131.1Sjmcneill
141.1Sjmcneill##
151.1Sjmcneill## (2) compile settings
161.1Sjmcneill##
171.17SjmcneillUSERMODE_HOSTOS!=uname -s
181.10SjmcneillUSERMODE_LIBS=	-lrt
191.17Sjmcneill.if ${USERMODE_HOSTOS} == "Linux"
201.17SjmcneillUSERMODE_LIBS+=	-lpthread
211.17Sjmcneill.endif
221.14SjmcneillUSERMODE_CPPFLAGS=-U_KERNEL -I/usr/include
231.14SjmcneillUSERMODE_CPPFLAGS+=${CWARNFLAGS} ${NOGCCERROR:D:U-Werror}
241.10Sjmcneill
251.12SreinoudDEFCOPTS=	-fno-omit-frame-pointer
261.17SjmcneillCPPFLAGS+=	-Dusermode -D__NetBSD__ -Wno-unused-but-set-variable
271.2SjmcneillCPPFLAGS.init_main.c+=	-Dmain=kernmain
281.1Sjmcneill
291.14SjmcneillOPT_SDL=	%SDL%
301.16SjmcneillOPT_URKELVISOR=	%URKELVISOR%
311.16Sjmcneill
321.14Sjmcneill.if !empty(OPT_SDL)
331.14SjmcneillSDL_CFLAGS!=	sdl-config --cflags
341.14SjmcneillSDL_LIBS!=	sdl-config --libs
351.14SjmcneillUSERMODE_LIBS+=	-Wl,-Bdynamic ${SDL_LIBS}
361.14Sjmcneill.endif
371.14Sjmcneill
381.14SjmcneillCPPFLAGS.thunk.c+=	${USERMODE_CPPFLAGS}
391.14SjmcneillCPPFLAGS.thunk_sdl.c+=	${SDL_CFLAGS} ${USERMODE_CPPFLAGS}
401.16SjmcneillCPPFLAGS.urkelvisor.c+=	${USERMODE_CPPFLAGS}
411.8Sjmcneill
421.1Sjmcneill##
431.1Sjmcneill## (3) libkern and compat
441.1Sjmcneill##
451.1SjmcneillKERN_AS=	obj
461.6SjmcneillCOMPAT_AS=	obj
471.1Sjmcneill
481.1Sjmcneill##
491.1Sjmcneill## (4) local objects, compile rules, and dependencies
501.1Sjmcneill##
511.8SjmcneillMD_OBJS=	thunk.o
521.8SjmcneillMD_CFILES=	${USERMODE}/usermode/thunk.c
531.16SjmcneillMD_SFILES=
541.16Sjmcneill
551.16Sjmcneill.if !empty(OPT_URKELVISOR)
561.16SjmcneillMD_OBJS+=	urkelvisor.o
571.16SjmcneillMD_CFILES+=	${USERMODE}/usermode/urkelvisor.c
581.16Sjmcneill.endif
591.16Sjmcneill
601.14Sjmcneill.if !empty(OPT_SDL)
611.14SjmcneillMD_OBJS+=	thunk_sdl.o
621.14SjmcneillMD_CFILES+=	${USERMODE}/usermode/thunk_sdl.c
631.14Sjmcneill.endif
641.1Sjmcneill
651.1Sjmcneill##
661.1Sjmcneill## (5) link settings
671.1Sjmcneill##
681.8SjmcneillSYSTEM_LD=	@${_MKSHMSG} "   link  ${.CURDIR:T}/${.TARGET}"; \
691.6Sjmcneill		${_MKSHECHO}\
701.17Sjmcneill		${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ '$${SYSTEM_OBJ}' '$${EXTRA_OBJ}' vers.o ${USERMODE_LIBS}; \
711.17Sjmcneill		${CC} -static ${COPTS} -Wl,-Map,$@.map -o $@ ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o ${USERMODE_LIBS}
721.7SjmcneillNVFLAGS=	-n
731.1Sjmcneill
741.1Sjmcneill##
751.1Sjmcneill## (6) port specific target dependencies
761.1Sjmcneill##
771.1Sjmcneill
781.9Sjmcneill.if !make(obj) && !make(clean) && !make(cleandir)
791.9Sjmcneill.BEGIN:
801.9Sjmcneill	@rm -f i386 && \
811.9Sjmcneill		ln -s $S/arch/i386/include i386
821.9Sjmcneill.endif
831.9Sjmcneill
841.15Sjmcneillthunk.d: ${USERMODE}/usermode/thunk.c
851.15Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
861.15Sjmcneill	    ${CPPFLAGS.thunk.c} ${USERMODE}/usermode/thunk.c
871.15Sjmcneill
881.8Sjmcneillthunk.o: ${USERMODE}/usermode/thunk.c
891.13Sjmcneill	${CC} ${CPPFLAGS.thunk.c} -c -o $@ ${USERMODE}/usermode/thunk.c
901.8Sjmcneill
911.15Sjmcneillthunk_sdl.d: ${USERMODE}/usermode/thunk.c
921.15Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
931.15Sjmcneill	    ${CPPFLAGS.thunk_sdl.c} ${USERMODE}/usermode/thunk_sdl.c
941.15Sjmcneill
951.14Sjmcneillthunk_sdl.o: ${USERMODE}/usermode/thunk_sdl.c
961.14Sjmcneill	${CC} ${CPPFLAGS.thunk_sdl.c} -c -o $@ ${USERMODE}/usermode/thunk_sdl.c
971.14Sjmcneill
981.16Sjmcneillurkelvisor.d: ${USERMODE}/usermode/urkelvisor.c
991.16Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
1001.16Sjmcneill	    ${CPPFLAGS.urkelvisor.c} ${USERMODE}/usermode/urkelvisor.c
1011.16Sjmcneill
1021.16Sjmcneillurkelvisor.o: ${USERMODE}/usermode/urkelvisor.c
1031.16Sjmcneill	${CC} ${CPPFLAGS.urkelvisor.c} -c -o $@ ${USERMODE}/usermode/urkelvisor.c
1041.16Sjmcneill
1051.1Sjmcneill##
1061.1Sjmcneill## (7) misc settings
1071.1Sjmcneill##
1081.1Sjmcneill
1091.1Sjmcneill##
1101.1Sjmcneill## (8) config(8) generated machinery
1111.1Sjmcneill%INCLUDES
1121.1Sjmcneill
1131.1Sjmcneill%OBJS
1141.1Sjmcneill
1151.1Sjmcneill%CFILES
1161.1Sjmcneill
1171.1Sjmcneill%SFILES
1181.1Sjmcneill
1191.1Sjmcneill%LOAD
1201.1Sjmcneill
1211.1Sjmcneill%RULES
1221.1Sjmcneill
1231.1Sjmcneill##
1241.1Sjmcneill## (9) port independent kernel machinery
1251.1Sjmcneill##
1261.1Sjmcneill.include "$S/conf/Makefile.kern.inc"
1271.1Sjmcneill
1281.1Sjmcneill##
1291.1Sjmcneill## (10) appending make options
1301.1Sjmcneill##
1311.1Sjmcneill%MAKEOPTIONSAPPEND
132