| 1 | |
|---|
| 2 | mod_name := dst_mod |
|---|
| 3 | |
|---|
| 4 | CUR_DIR := . |
|---|
| 5 | APP_DIR := ../../.. |
|---|
| 6 | INSTALL_DIR := $(APP_DIR)/candidates |
|---|
| 7 | SRC_DIR := $(CUR_DIR)/../../../hal/os/src/module |
|---|
| 8 | |
|---|
| 9 | #CROSS_COMPILE := mips-linux-uclibc- |
|---|
| 10 | AS :=$(CROSS_COMPILE)as |
|---|
| 11 | LD :=$(CROSS_COMPILE)ld |
|---|
| 12 | CC :=$(CROSS_COMPILE)gcc |
|---|
| 13 | CPP :=$(CC) -E |
|---|
| 14 | AR :=$(CROSS_COMPILE)ar |
|---|
| 15 | NM :=$(CROSS_COMPILE)nm |
|---|
| 16 | STRIP :=$(CROSS_COMPILE)strip |
|---|
| 17 | OBJCOPY :=$(CROSS_COMPILE)objcopy |
|---|
| 18 | OBJDUMP :=$(CROSS_COMPILE)objdump |
|---|
| 19 | RANLIB :=$(CROSS_COMPILE)ranlib |
|---|
| 20 | |
|---|
| 21 | DEBUG := -DDEBUG_LEVEL_ERROR |
|---|
| 22 | #check if debug version |
|---|
| 23 | ifeq ($(MAKECMDGOALS),debug) |
|---|
| 24 | DEBUG := -g -DDEBUG -DDEBUG_LEVEL_ERROR -DDEBUG_LEVEL_TRACE |
|---|
| 25 | endif |
|---|
| 26 | |
|---|
| 27 | DEFS := -D_REENTRANT -DPURE_BIG_ENDIAN |
|---|
| 28 | OPT := |
|---|
| 29 | GCCFLAG := -fno-for-scope |
|---|
| 30 | KERNEL_CFLAGS := $(OPT) -DCONFIG_ENDIAN_BIG |
|---|
| 31 | ARFLAGS := ruv |
|---|
| 32 | |
|---|
| 33 | LINUX_INC = /usr/src/linux-2.4/include |
|---|
| 34 | |
|---|
| 35 | ifeq "$(USE_MIPS)" "1" |
|---|
| 36 | LDFLAGS := -m elf32btsmip |
|---|
| 37 | CFLAGS = $(KERNEL_CFLAGS) -nostdinc -isystem /opt/Trid_HiDTV_BR/build_mips_nofpu/mips-uClibc-linux/usr/bin/../lib/gcc/mips-linux-uclibc/4.2.0/include \ |
|---|
| 38 | -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float -ffreestanding\ |
|---|
| 39 | -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common \ |
|---|
| 40 | -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mlong-calls \ |
|---|
| 41 | -include $(LINUX_INC)/linux/autoconf.h \ |
|---|
| 42 | -I$(LINUX_INC)/ \ |
|---|
| 43 | -I$(LINUX_INC)/asm/mach-generic \ |
|---|
| 44 | -DCONFIG_MODULE_UNLOAD -D__KERNEL__ -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR($(mod_name))" -D"KBUILD_MODNAME=KBUILD_STR($(mod_name))" -D"ENDIAN_CFG_STRING=\"Pure Big Endian\"" |
|---|
| 45 | else |
|---|
| 46 | LDFLAGS := |
|---|
| 47 | CFLAGS = -DCONFIG_MODULE_UNLOAD -D__KERNEL__ -fomit-frame-pointer \ |
|---|
| 48 | -include $(LINUX_INC)/linux/autoconf.h \ |
|---|
| 49 | -I$(LINUX_INC)/ \ |
|---|
| 50 | -I$(LINUX_INC)/asm/mach-generic |
|---|
| 51 | endif |
|---|
| 52 | |
|---|
| 53 | OBJS := $(SRC_DIR)/dst_module.o $(SRC_DIR)/lld_osutil.o $(SRC_DIR)/lld_sem.o $(SRC_DIR)/lld_evnt.o |
|---|
| 54 | |
|---|
| 55 | ifeq "$(USE_LINUX_2_6)" "1" |
|---|
| 56 | all: $(mod_name).ko |
|---|
| 57 | else |
|---|
| 58 | all: $(mod_name).o |
|---|
| 59 | endif |
|---|
| 60 | |
|---|
| 61 | $(mod_name).ko: $(mod_name).o $(mod_name).mod.o |
|---|
| 62 | $(LD) -m elf32btsmip -r -o $@ $^ |
|---|
| 63 | cp -f $@ $(INSTALL_DIR) |
|---|
| 64 | |
|---|
| 65 | $(mod_name).o : $(OBJS) |
|---|
| 66 | $(LD) $(LDFLAGS) -r -o $@ $^ |
|---|
| 67 | cp -f $@ $(INSTALL_DIR) |
|---|
| 68 | |
|---|
| 69 | $(OBJS): %.o : %.c |
|---|
| 70 | $(CC) $(CFLAGS) -c -o $@ $^ |
|---|
| 71 | |
|---|
| 72 | $(mod_name).mod.c: $(patsubst, %.o, %.c, $(OBJS)) |
|---|
| 73 | $(MODPOST_DIR)scripts/mod/modpost $(MODPOST_DIR)vmlinux $(mod_name).o |
|---|
| 74 | |
|---|
| 75 | $(mod_name).mod.o: $(mod_name).mod.c |
|---|
| 76 | $(CC) $(CFLAGS) -c -o $@ $< |
|---|
| 77 | |
|---|
| 78 | clean: |
|---|
| 79 | rm -f $(mod_name).ko $(OBJS) $(mod_name).mod.o $(mod_name).mod.c $(mod_name).o |
|---|
| 80 | |
|---|
| 81 | install: |
|---|
| 82 | distclean: |
|---|