Commit | Line | Data |
---|---|---|
800f879a AT |
1 | # |
2 | # Build RAS drivers | |
3 | # | |
4 | # In Linux 2.6 kernels modules must be built by the kernel's kbuild | |
5 | # system, with a path to the kernel module source directory. Kbuild | |
6 | # expects a general purpose Makefile to exist and optionally an extra | |
7 | # file named Kbuild with the kernel module build details. | |
8 | # This Makefile is a 'backwards compatible' (see file "modules.txt"). | |
9 | # | |
10 | DEBUG = n | |
11 | ||
12 | ifneq ($(KERNELRELEASE),) | |
13 | ||
14 | # | |
15 | # Kbuild backwards compatibility part: | |
16 | # Load Kbuild to specify module targets and options. | |
17 | # | |
18 | include Kbuild | |
19 | ||
20 | else | |
21 | ||
22 | # | |
23 | # Standard invocation: | |
24 | # | |
25 | # Export variables to environment and pass control to kernel tools | |
26 | # ARCH Target architecture: l1om or k1om | |
27 | # KERNELDIR Top of MIC kernel tree (not repo source tree) | |
28 | # DRIVERDIR Top of MPSS drivers build tree (not repo source tree) | |
29 | # | |
30 | ||
31 | ARCH := $(or $(ARCH), $(shell cat $(CURDIR)/../.arch 2>/dev/null)) | |
32 | ||
33 | ifeq ($(DRIVERDIR),) | |
34 | ifeq ($(shell /usr/bin/test -d ../source-root/$(ARCH)-hybrid && echo Y),Y) | |
35 | DRIVERDIR = $(PWD)/../source-root/$(ARCH)-hybrid | |
36 | KERNELDIR ?= $(DRIVERDIR)/card/kernel | |
37 | else ifeq ($(shell /usr/bin/test -d ../source-root/$(ARCH)-internal && echo Y),Y) | |
38 | DRIVERDIR = $(PWD)/../source-root/$(ARCH)-internal | |
39 | KERNELDIR ?= $(DRIVERDIR)/card/kernel | |
40 | endif | |
41 | endif | |
42 | KERNELDIR ?= ../../miclinux | |
43 | ||
44 | SCIF_SYM = $(DRIVERDIR)/card/driver/Module.symvers | |
45 | SCIF_LIB = $(DRIVERDIR)/host/scif_lib | |
46 | SCIF_HEADER = $(DRIVERDIR)/include | |
47 | ||
48 | EXTRA_CFLAGS += $(KERNWARNFLAGS) | |
49 | ifeq ($(ARCH),l1om) | |
50 | EXTRA_CFLAGS += -DMIC_IS_L1OM | |
51 | else ifeq ($(ARCH),k1om) | |
52 | EXTRA_CFLAGS += -DMIC_IS_K1OM | |
53 | else | |
54 | $(error $$(ARCH) must be l1om or k1om) | |
55 | endif | |
56 | EXTRA_CFLAGS += -DINTERNAL_REG=1 -Wall | |
57 | EXTRA_CFLAGS += $(SPOOKY_MIC_CFLAGS) | |
58 | ||
59 | CROSS_COMPILE = x86_64-$(ARCH)-linux- | |
60 | ||
61 | ifeq ($(shell which $(CROSS_COMPILE)gcc 2>/dev/null),) | |
62 | ifeq ($(shell which ../cross/bin/$(CROSS_COMPILE)gcc 2>/dev/null),) | |
63 | $(error $$(PATH) must include $(CROSS_COMPILE)gcc) | |
64 | else | |
65 | CROSS_COMPILE = $(PWD)/../cross/bin/x86_64-$(ARCH)-linux- | |
66 | endif | |
67 | endif | |
68 | ||
69 | default: modules tests | |
70 | ||
71 | modules: | |
72 | @ echo "$(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) modules" | |
73 | @ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) \ | |
74 | V=0 DEBUG=$(DEBUG) \ | |
75 | SPOOKY_MIC_CFLAGS=$(SPOOKY_MIC_CFLAGS) \ | |
76 | CROSS_COMPILE=$(CROSS_COMPILE) \ | |
77 | KBUILD_EXTRA_SYMBOLS=$(SCIF_SYM) \ | |
78 | modules | |
79 | ||
80 | install: modules_install | |
81 | ||
82 | modules_install: | |
83 | @ echo "$(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) install" | |
84 | @ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) \ | |
85 | V=0 DEBUG=$(DEBUG) \ | |
86 | CROSS_COMPILE=$(CROSS_COMPILE) \ | |
87 | SPOOKY_MIC_CFLAGS=$(SPOOKY_MIC_CFLAGS) \ | |
88 | KBUILD_EXTRA_SYMBOLS=$(SCIF_SYM) \ | |
89 | INSTALL_MOD_PATH=$(DESTDIR) \ | |
90 | modules_install | |
91 | ||
92 | # | |
93 | # Test programs, expects that compilers and SCIF libraries are present. | |
94 | # | |
95 | host-tools = edecode gdecode | |
96 | host-tests = cp mc ttl tmp cutl proc ukill fan smc fsc pm trbo ptrig cp32 p-in-host p-out-host | |
97 | card-tests = p-in-card p-out-card suid load | |
98 | ||
99 | tests: $(host-tools) $(host-tests) $(card-tests) | |
100 | ||
101 | cp: cp.c micras_api.h | |
102 | @ echo gcc -O2 cp.c -o cp -lscif | |
103 | @ gcc -O2 cp.c -o cp $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
104 | ||
105 | cp32: cp32.c micras_api.h | |
106 | @ echo gcc -O2 cp32.c -o cp32 -lscif | |
107 | @ gcc -O2 cp32.c -o cp32 $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
108 | ||
109 | mc: mc.c micmca_api.h | |
110 | @ echo gcc -O2 mc.c -o mc -lscif | |
111 | @ gcc -O2 mc.c -o mc $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
112 | ||
113 | cutl: cutl.c micras_api.h | |
114 | @ echo gcc -O2 cutl.c -o cutl -lscif -lncurses | |
115 | @ gcc -O2 cutl.c -o cutl $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif -lncurses | |
116 | ||
117 | cutl2: cutl2.c micras_api.h | |
118 | @ echo gcc -O2 cutl2.c -o cutl2 -lscif -lncurses | |
119 | @ gcc -O2 cutl2.c -o cutl2 $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif -lncurses | |
120 | ||
121 | proc: proc.c micras_api.h | |
122 | @ echo gcc -O2 proc.c -o proc -lscif -lncurses | |
123 | @ gcc -O2 proc.c -o proc $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif -lncurses | |
124 | ||
125 | trbo: trbo.c micras_api.h | |
126 | @ echo gcc -O2 trbo.c -o trbo -lscif | |
127 | @ gcc -O2 trbo.c -o trbo $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
128 | ||
129 | fan: fan.c micras_api.h | |
130 | @ echo gcc -O2 fan.c -o fan -lscif | |
131 | @ gcc -O2 fan.c -o fan $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
132 | ||
133 | smc: smc.c micras_api.h | |
134 | @ echo gcc -O2 smc.c -o smc -lscif | |
135 | @ gcc -O2 smc.c -o smc $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
136 | ||
137 | pm_tst: pm_tst.c micras_api.h | |
138 | @ echo gcc -O2 pm_tst.c -o pm_tst -lscif | |
139 | @ gcc -O2 pm_tst.c -o pm_tst $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
140 | ||
141 | fsc: fsc.c micras_api.h | |
142 | @ echo gcc -O2 fsc.c -o fsc -lscif | |
143 | @ gcc -O2 fsc.c -o fsc $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
144 | ||
145 | ptrig: ptrig.c micras_api.h | |
146 | @ echo gcc -O2 ptrig.c -o ptrig -lscif | |
147 | @ gcc -O2 ptrig.c -o ptrig $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
148 | ||
149 | pm: pm.c micras_api.h micpm_api.h | |
150 | @ echo gcc -O2 pm.c -o pm -lscif | |
151 | @ gcc -O2 pm.c -o pm $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
152 | ||
153 | tmp: tmp.c micras_api.h | |
154 | @ echo gcc -O2 tmp.c -o tmp -lscif | |
155 | @ gcc -O2 tmp.c -o tmp $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
156 | ||
157 | ttl: ttl.c micras_api.h micpm_api.h | |
158 | @ echo gcc -O2 ttl.c -o ttl -lscif | |
159 | @ gcc -O2 ttl.c -o ttl $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
160 | ||
161 | ukill: ukill.c micras_api.h | |
162 | @ echo gcc -O2 ukill.c -o ukill -lscif | |
163 | @ gcc -O2 ukill.c -o ukill $(EXTRA_CFLAGS) -I$(SCIF_HEADER) -L$(SCIF_LIB) -lscif | |
164 | ||
165 | edecode: edecode.c | |
166 | @ echo gcc -O2 edecode.c -o edecode | |
167 | @ gcc -O2 -Wall edecode.c -o edecode | |
168 | ||
169 | gdecode: gdecode.c | |
170 | @ echo gcc -O2 gdecode.c -o gdecode | |
171 | @ gcc -O2 -Wall gdecode.c -o gdecode | |
172 | ||
173 | p-in-host: p-in.c Makefile | |
174 | @ echo gcc -O2 p-in.c -o p-in-host | |
175 | @ gcc -O2 p-in.c -o p-in-host -DIOK=16 | |
176 | ||
177 | p-out-host: p-out.c Makefile | |
178 | @ echo gcc -O2 p-out.c -o p-out-host | |
179 | @ gcc -O2 p-out.c -o p-out-host -DIOK=16 -DTXG=64 | |
180 | ||
181 | suid: suid.c | |
182 | @ echo cross-gcc -O2 suid.c -o suid | |
183 | @ $(CROSS_COMPILE)gcc -O2 suid.c -o suid | |
184 | ||
185 | p-in-card: p-in.c Makefile | |
186 | @ echo cross-gcc -O2 p-in.c -o p-in-card | |
187 | @ $(CROSS_COMPILE)gcc -O2 p-in.c -o p-in-card -DIOK=64 | |
188 | ||
189 | p-out-card: p-out.c Makefile | |
190 | @ echo cross-gcc -O2 p-out.c -o p-out-card | |
191 | @ $(CROSS_COMPILE)gcc -O2 p-out.c -o p-out-card -DIOK=64 -DTXG=16 | |
192 | ||
193 | load: load.c | |
194 | @ echo cross-gcc load.c -o load -pthread -lpthread | |
195 | @ $(CROSS_COMPILE)gcc load.c -o load $(EXTRA_CFLAGS) -pthread -lpthread | |
196 | ||
197 | cpptest: | |
198 | @ echo Dumping compiler defines | |
199 | @ echo > nil.c | |
200 | @ $(CROSS_COMPILE)gcc -E -dM nil.c | sort | |
201 | @ rm nil.c | |
202 | ||
203 | endif | |
204 | ||
205 | clean: | |
206 | @ echo " Cleaning .." | |
207 | @ rm -fr *.o *~ core .*.sw? .depend .*.cmd *.ko *.mod.c \ | |
208 | .tmp_versions modules.order Module.symvers | |
209 | @ rm -f $(host-tools) $(host-tests) $(card-tests) | |
210 |