| 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 | |