minix/share/mk/minix.service.mk
Lionel Sambuc ecad34966a Fix ARM floating point for services
Change-Id: Ic5772a7a78ea13ab6bb8db3ffd7f0906fd1380cf
2014-07-28 17:05:40 +02:00

42 lines
1.1 KiB
Makefile

# MINIX-specific servers/drivers options
.include <bsd.own.mk>
# LSC: Our minimal c library has no putchar, which is called by the builtin
# functions of the compiler, so prevent using them.
AFLAGS+= -D__ASSEMBLY__
COPTS+= -fno-builtin
# LSC Static linking, order matters!
# We can't use --start-group/--end-group as they are not supported by our
# version of clang.
# 1. No default libs
LDADD:= -nodefaultlibs ${LDADD}
# 2. Compiler-specific libs
.if !empty(CC:M*gcc)
LDADD+= -lsys
DPADD+= ${LIBSYS}
.elif !empty(CC:M*clang)
LDADD+= -L/usr/pkg/compiler-rt/lib -lCompilerRT-Generic -lsys -lCompilerRT-Generic
.endif
# 3. Minimal C library
LDADD+= -lminc
DPADD+= ${LIBMINC}
.if ${MACHINE_ARCH} == "earm"
# LSC: On ARM, when compiling statically, with gcc, lgcc_eh is required
.if ${PROG:U} != "kernel" && !empty(CC:M*gcc)
# gcc_eh uses abort(), which is provided by minc
LDFLAGS+= ${${ACTIVE_CC} == "gcc":? -lgcc_eh:}
.endif # ${PROG:U} != "kernel" && !empty(CC:M*gcc)
.endif # ${MACHINE_ARCH} == "earm"
# Get (more) internal minix definitions and declarations.
CPPFLAGS += -D_MINIX_SYSTEM=1
.include <bsd.prog.mk>