Makefile.usermode revision 1.16
11.16Sjmcneill# $NetBSD: Makefile.usermode,v 1.16 2011/09/03 12:28:45 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.10SjmcneillUSERMODE_LIBS=	-lrt
181.14SjmcneillUSERMODE_CPPFLAGS=-U_KERNEL -I/usr/include
191.14SjmcneillUSERMODE_CPPFLAGS+=${CWARNFLAGS} ${NOGCCERROR:D:U-Werror}
201.10Sjmcneill
211.12SreinoudDEFCOPTS=	-fno-omit-frame-pointer
221.5SjmcneillCPPFLAGS+=	-Dusermode
231.2SjmcneillCPPFLAGS.init_main.c+=	-Dmain=kernmain
241.1Sjmcneill
251.14SjmcneillOPT_SDL=	%SDL%
261.16SjmcneillOPT_URKELVISOR=	%URKELVISOR%
271.16Sjmcneill
281.14Sjmcneill.if !empty(OPT_SDL)
291.14SjmcneillSDL_CFLAGS!=	sdl-config --cflags
301.14SjmcneillSDL_LIBS!=	sdl-config --libs
311.14SjmcneillUSERMODE_LIBS+=	-Wl,-Bdynamic ${SDL_LIBS}
321.14Sjmcneill.endif
331.14Sjmcneill
341.14SjmcneillCPPFLAGS.thunk.c+=	${USERMODE_CPPFLAGS}
351.14SjmcneillCPPFLAGS.thunk_sdl.c+=	${SDL_CFLAGS} ${USERMODE_CPPFLAGS}
361.16SjmcneillCPPFLAGS.urkelvisor.c+=	${USERMODE_CPPFLAGS}
371.8Sjmcneill
381.1Sjmcneill##
391.1Sjmcneill## (3) libkern and compat
401.1Sjmcneill##
411.1SjmcneillKERN_AS=	obj
421.6SjmcneillCOMPAT_AS=	obj
431.1Sjmcneill
441.1Sjmcneill##
451.1Sjmcneill## (4) local objects, compile rules, and dependencies
461.1Sjmcneill##
471.8SjmcneillMD_OBJS=	thunk.o
481.8SjmcneillMD_CFILES=	${USERMODE}/usermode/thunk.c
491.16SjmcneillMD_SFILES=
501.16Sjmcneill
511.16Sjmcneill.if !empty(OPT_URKELVISOR)
521.16SjmcneillMD_OBJS+=	urkelvisor.o
531.16SjmcneillMD_CFILES+=	${USERMODE}/usermode/urkelvisor.c
541.16Sjmcneill.endif
551.16Sjmcneill
561.14Sjmcneill.if !empty(OPT_SDL)
571.14SjmcneillMD_OBJS+=	thunk_sdl.o
581.14SjmcneillMD_CFILES+=	${USERMODE}/usermode/thunk_sdl.c
591.14Sjmcneill.endif
601.1Sjmcneill
611.1Sjmcneill##
621.1Sjmcneill## (5) link settings
631.1Sjmcneill##
641.8SjmcneillSYSTEM_LD=	@${_MKSHMSG} "   link  ${.CURDIR:T}/${.TARGET}"; \
651.6Sjmcneill		${_MKSHECHO}\
661.11Sreinoud		${CC} ${COPTS} -Wl,-Map,$@.map,-Bstatic -o $@ '$${SYSTEM_OBJ}' '$${EXTRA_OBJ}' vers.o ${USERMODE_LIBS}; \
671.11Sreinoud		${CC} ${COPTS} -Wl,-Map,$@.map,-Bstatic -o $@ ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o ${USERMODE_LIBS}
681.7SjmcneillNVFLAGS=	-n
691.1Sjmcneill
701.1Sjmcneill##
711.1Sjmcneill## (6) port specific target dependencies
721.1Sjmcneill##
731.1Sjmcneill
741.9Sjmcneill.if !make(obj) && !make(clean) && !make(cleandir)
751.9Sjmcneill.BEGIN:
761.9Sjmcneill	@rm -f i386 && \
771.9Sjmcneill		ln -s $S/arch/i386/include i386
781.9Sjmcneill.endif
791.9Sjmcneill
801.15Sjmcneillthunk.d: ${USERMODE}/usermode/thunk.c
811.15Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
821.15Sjmcneill	    ${CPPFLAGS.thunk.c} ${USERMODE}/usermode/thunk.c
831.15Sjmcneill
841.8Sjmcneillthunk.o: ${USERMODE}/usermode/thunk.c
851.13Sjmcneill	${CC} ${CPPFLAGS.thunk.c} -c -o $@ ${USERMODE}/usermode/thunk.c
861.8Sjmcneill
871.15Sjmcneillthunk_sdl.d: ${USERMODE}/usermode/thunk.c
881.15Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
891.15Sjmcneill	    ${CPPFLAGS.thunk_sdl.c} ${USERMODE}/usermode/thunk_sdl.c
901.15Sjmcneill
911.14Sjmcneillthunk_sdl.o: ${USERMODE}/usermode/thunk_sdl.c
921.14Sjmcneill	${CC} ${CPPFLAGS.thunk_sdl.c} -c -o $@ ${USERMODE}/usermode/thunk_sdl.c
931.14Sjmcneill
941.16Sjmcneillurkelvisor.d: ${USERMODE}/usermode/urkelvisor.c
951.16Sjmcneill	${MKDEP} -f ${.TARGET} -- ${MKDEP_CFLAGS} \
961.16Sjmcneill	    ${CPPFLAGS.urkelvisor.c} ${USERMODE}/usermode/urkelvisor.c
971.16Sjmcneill
981.16Sjmcneillurkelvisor.o: ${USERMODE}/usermode/urkelvisor.c
991.16Sjmcneill	${CC} ${CPPFLAGS.urkelvisor.c} -c -o $@ ${USERMODE}/usermode/urkelvisor.c
1001.16Sjmcneill
1011.1Sjmcneill##
1021.1Sjmcneill## (7) misc settings
1031.1Sjmcneill##
1041.1Sjmcneill
1051.1Sjmcneill##
1061.1Sjmcneill## (8) config(8) generated machinery
1071.1Sjmcneill%INCLUDES
1081.1Sjmcneill
1091.1Sjmcneill%OBJS
1101.1Sjmcneill
1111.1Sjmcneill%CFILES
1121.1Sjmcneill
1131.1Sjmcneill%SFILES
1141.1Sjmcneill
1151.1Sjmcneill%LOAD
1161.1Sjmcneill
1171.1Sjmcneill%RULES
1181.1Sjmcneill
1191.1Sjmcneill##
1201.1Sjmcneill## (9) port independent kernel machinery
1211.1Sjmcneill##
1221.1Sjmcneill.include "$S/conf/Makefile.kern.inc"
1231.1Sjmcneill
1241.1Sjmcneill##
1251.1Sjmcneill## (10) appending make options
1261.1Sjmcneill##
1271.1Sjmcneill%MAKEOPTIONSAPPEND
128