blob: f81b29da8556401fbeb53266cc1cbad61d97afa8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# Linux 2.6 defines some macros on command line
KBUILD_DEFINES = -D"KBUILD_STR(s)=\#s" \
-D"KBUILD_BASENAME=KBUILD_STR($(patsubst %.o, %, $(notdir $@)))" \
-D"KBUILD_MODNAME=KBUILD_STR($(patsubst %.o, %, $@))"
# for some reasons, Linux 2.6 does not include autoconf.h in the implementation
# files but does so on the command line
ifeq ($(ARCH), x86)
KBUILD_CPPFLAGS = -include linux/autoconf.h
endif
ifeq ($(ARCH), arm)
KBUILD_CPPFLAGS = -include linux/autoconf-arm.h
endif
OBJ_BASE = /root/hurd/libdde_linux26/build
# includes
MY_DDE_INCDIR = $(OBJ_BASE)/include/$(ARCH) \
$(OBJ_BASE)/include/
SUFFIX_amd64 = x86_64
SUFFIX_x86 = x86
SUFFIX_arm = arm
MY_LINUX26_INCDIR = $(OBJ_BASE)/include/$(ARCH)/linux-headers \
$(OBJ_BASE)/include/$(ARCH)/asm \
$(OBJ_BASE)/include/linux-headers/asm \
$(OBJ_BASE)/include/linux-headers
# stolen from fiasco/src/Makeconf, checks whether a compiler supports a certain
# parameter
CHECKCC = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \
> /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
# Linux always uses C...
MODE_USE_C = y
L4_MULTITHREADED = y
# arch-specific stuff
ifeq ($(ARCH), x86)
MY_DDE_INCDIR += $(OBJ_BASE)/include/linux-headers/asm/mach-default
endif
PRIVATE_INCDIR += $(MY_DDE_INCDIR) $(MY_LINUX26_INCDIR) /root/hurd/libddekit/include
DEFINES += -D__KERNEL__ -DDDE_LINUX $(KBUILD_DEFINES)
CPPFLAGS += $(KBUILD_CPPFLAGS)
CFLAGS += -ffunction-sections
ASFLAGS += -D__ASSEMBLY__
WARNINGS += -Wall -Wstrict-prototypes -fno-strict-aliasing
WARNINGS += $(call CHECKCC, -Wno-unused,)
WARNINGS += $(call CHECKCC, -Wno-pointer-sign,)
|