# In Linux 2.6 kernels modules must be built by the kernel's kbuild
# system, with a path to the kernel module source directory. Kbuild
# expects a general purpose Makefile to exist and optionally an extra
# file named Kbuild with the kernel module build details.
# This Makefile is a 'backwards compatible' (see file "modules.txt").
ifneq ($(KERNELRELEASE
),)
# Kbuild backwards compatibility part:
# Load Kbuild to specify module targets and options.
# Export variables to environment and pass control to kernel tools
# ARCH Target architecture: l1om or k1om
# KERNELDIR Top of MIC kernel tree (not repo source tree)
# DRIVERDIR Top of MPSS drivers build tree (not repo source tree)
ARCH
:= $(or
$(ARCH
), $(shell cat
$(CURDIR
)/..
/.arch
2>/dev
/null
))
ifeq ($(shell /usr
/bin
/test -d ..
/source-root
/$(ARCH
)-hybrid
&& echo Y
),Y
)
DRIVERDIR
= $(PWD
)/..
/source-root
/$(ARCH
)-hybrid
KERNELDIR ?
= $(DRIVERDIR
)/card
/kernel
else ifeq ($(shell /usr
/bin
/test -d ..
/source-root
/$(ARCH
)-internal
&& echo Y
),Y
)
DRIVERDIR
= $(PWD
)/..
/source-root
/$(ARCH
)-internal
KERNELDIR ?
= $(DRIVERDIR
)/card
/kernel
KERNELDIR ?
= ..
/..
/miclinux
SCIF_SYM
= $(DRIVERDIR
)/card
/driver
/Module.symvers
SCIF_LIB
= $(DRIVERDIR
)/host
/scif_lib
SCIF_HEADER
= $(DRIVERDIR
)/include
EXTRA_CFLAGS
+= $(KERNWARNFLAGS
)
EXTRA_CFLAGS
+= -DMIC_IS_L1OM
EXTRA_CFLAGS
+= -DMIC_IS_K1OM
$(error
$$(ARCH
) must be l1om or k1om
)
EXTRA_CFLAGS
+= -DINTERNAL_REG
=1 -Wall
EXTRA_CFLAGS
+= $(SPOOKY_MIC_CFLAGS
)
CROSS_COMPILE
= x86_64-
$(ARCH
)-linux-
ifeq ($(shell which
$(CROSS_COMPILE
)gcc
2>/dev
/null
),)
ifeq ($(shell which ..
/cross
/bin
/$(CROSS_COMPILE
)gcc
2>/dev
/null
),)
$(error
$$(PATH
) must
include $(CROSS_COMPILE
)gcc
)
CROSS_COMPILE
= $(PWD
)/..
/cross
/bin
/x86_64-
$(ARCH
)-linux-
@ echo
"$(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) modules"
@
$(MAKE
) -C
$(KERNELDIR
) M
=$(CURDIR
) ARCH
=$(ARCH
) \
SPOOKY_MIC_CFLAGS
=$(SPOOKY_MIC_CFLAGS
) \
CROSS_COMPILE
=$(CROSS_COMPILE
) \
KBUILD_EXTRA_SYMBOLS
=$(SCIF_SYM
) \
@ echo
"$(MAKE) -C $(KERNELDIR) M=$(CURDIR) ARCH=$(ARCH) install"
@
$(MAKE
) -C
$(KERNELDIR
) M
=$(CURDIR
) ARCH
=$(ARCH
) \
CROSS_COMPILE
=$(CROSS_COMPILE
) \
SPOOKY_MIC_CFLAGS
=$(SPOOKY_MIC_CFLAGS
) \
KBUILD_EXTRA_SYMBOLS
=$(SCIF_SYM
) \
INSTALL_MOD_PATH
=$(DESTDIR
) \
# Test programs, expects that compilers and SCIF libraries are present.
host-tools
= edecode gdecode
host-tests
= cp mc ttl tmp cutl proc ukill fan smc fsc pm trbo ptrig cp32 p-in-host p-out-host
card-tests
= p-in-card p-out-card suid load
tests
: $(host-tools
) $(host-tests
) $(card-tests
)
@ echo gcc
-O2 cp.c
-o cp
-lscif
@ gcc
-O2 cp.c
-o cp
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
cp32
: cp32.c micras_api.h
@ echo gcc
-O2 cp32.c
-o cp32
-lscif
@ gcc
-O2 cp32.c
-o cp32
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 mc.c
-o mc
-lscif
@ gcc
-O2 mc.c
-o mc
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
cutl
: cutl.c micras_api.h
@ echo gcc
-O2 cutl.c
-o cutl
-lscif
-lncurses
@ gcc
-O2 cutl.c
-o cutl
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
-lncurses
cutl2
: cutl2.c micras_api.h
@ echo gcc
-O2 cutl2.c
-o cutl2
-lscif
-lncurses
@ gcc
-O2 cutl2.c
-o cutl2
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
-lncurses
proc
: proc.c micras_api.h
@ echo gcc
-O2 proc.c
-o proc
-lscif
-lncurses
@ gcc
-O2 proc.c
-o proc
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
-lncurses
trbo
: trbo.c micras_api.h
@ echo gcc
-O2 trbo.c
-o trbo
-lscif
@ gcc
-O2 trbo.c
-o trbo
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 fan.c
-o fan
-lscif
@ gcc
-O2 fan.c
-o fan
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 smc.c
-o smc
-lscif
@ gcc
-O2 smc.c
-o smc
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
pm_tst
: pm_tst.c micras_api.h
@ echo gcc
-O2 pm_tst.c
-o pm_tst
-lscif
@ gcc
-O2 pm_tst.c
-o pm_tst
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 fsc.c
-o fsc
-lscif
@ gcc
-O2 fsc.c
-o fsc
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
ptrig
: ptrig.c micras_api.h
@ echo gcc
-O2 ptrig.c
-o ptrig
-lscif
@ gcc
-O2 ptrig.c
-o ptrig
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
pm
: pm.c micras_api.h micpm_api.h
@ echo gcc
-O2 pm.c
-o pm
-lscif
@ gcc
-O2 pm.c
-o pm
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 tmp.c
-o tmp
-lscif
@ gcc
-O2 tmp.c
-o tmp
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
ttl
: ttl.c micras_api.h micpm_api.h
@ echo gcc
-O2 ttl.c
-o ttl
-lscif
@ gcc
-O2 ttl.c
-o ttl
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
ukill
: ukill.c micras_api.h
@ echo gcc
-O2 ukill.c
-o ukill
-lscif
@ gcc
-O2 ukill.c
-o ukill
$(EXTRA_CFLAGS
) -I
$(SCIF_HEADER
) -L
$(SCIF_LIB
) -lscif
@ echo gcc
-O2 edecode.c
-o edecode
@ gcc
-O2
-Wall edecode.c
-o edecode
@ echo gcc
-O2 gdecode.c
-o gdecode
@ gcc
-O2
-Wall gdecode.c
-o gdecode
p-in-host
: p-in.c Makefile
@ echo gcc
-O2 p-in.c
-o p-in-host
@ gcc
-O2 p-in.c
-o p-in-host
-DIOK
=16
p-out-host
: p-out.c Makefile
@ echo gcc
-O2 p-out.c
-o p-out-host
@ gcc
-O2 p-out.c
-o p-out-host
-DIOK
=16 -DTXG
=64
@ echo cross-gcc
-O2 suid.c
-o suid
@
$(CROSS_COMPILE
)gcc
-O2 suid.c
-o suid
p-in-card
: p-in.c Makefile
@ echo cross-gcc
-O2 p-in.c
-o p-in-card
@
$(CROSS_COMPILE
)gcc
-O2 p-in.c
-o p-in-card
-DIOK
=64
p-out-card
: p-out.c Makefile
@ echo cross-gcc
-O2 p-out.c
-o p-out-card
@
$(CROSS_COMPILE
)gcc
-O2 p-out.c
-o p-out-card
-DIOK
=64 -DTXG
=16
@ echo cross-gcc load.c
-o load
-pthread
-lpthread
@
$(CROSS_COMPILE
)gcc load.c
-o load
$(EXTRA_CFLAGS
) -pthread
-lpthread
@ echo Dumping compiler defines
@
$(CROSS_COMPILE
)gcc
-E
-dM nil.c |
sort
@
rm -fr
*.o
*~ core .
*.sw? .depend .
*.cmd
*.ko
*.mod.c \
.tmp_versions modules.order Module.symvers
@
rm -f
$(host-tools
) $(host-tests
) $(card-tests
)