[87db514] | 1 | ############################################################################ |
---|
| 2 | # |
---|
| 3 | # common.make: |
---|
| 4 | # This file contains all the common stuff used by MicroMonitor port-specific |
---|
| 5 | # make files. |
---|
| 6 | |
---|
| 7 | ############################################################################ |
---|
| 8 | # |
---|
| 9 | # Various relative directories used to build the monitor: |
---|
| 10 | # |
---|
[d871a74] | 11 | BASE = $(TOPDIR) |
---|
[87db514] | 12 | CPUDIR = $(BASE)/cpu/$(CPUTYPE) |
---|
| 13 | ZLIBDIR = $(BASE)/zlib |
---|
| 14 | GLIBDIR = $(BASE)/glib |
---|
| 15 | COMDIR = $(BASE)/common |
---|
| 16 | MAKEDIR = $(BASE)/make |
---|
| 17 | DEVDIR = $(BASE)/dev |
---|
| 18 | FSDIR = $(BASE)/fs |
---|
| 19 | FATFSDIR = $(FSDIR)/elmfatfs |
---|
| 20 | JFFS2DIR = $(BASE)/fs/jffs2 |
---|
| 21 | |
---|
| 22 | ifeq ($(TOOLBIN),) |
---|
| 23 | TOOLBIN = $(TOPDIR)/host/bin |
---|
| 24 | endif |
---|
| 25 | |
---|
| 26 | ############################################################################ |
---|
| 27 | # |
---|
| 28 | # Generic tools used by all make files: |
---|
| 29 | # Names are derived from the TOOL_PREFIX variable |
---|
| 30 | # assumed to be established in the make file that |
---|
| 31 | # includes this. |
---|
| 32 | # |
---|
| 33 | |
---|
| 34 | ifeq ($(TOOL_PREFIX),) |
---|
| 35 | TOOL_PREFIX = $(CPUTYPE)-$(FILETYPE) |
---|
| 36 | endif |
---|
| 37 | NM = $(TOOL_PREFIX)-nm |
---|
| 38 | AR = $(TOOL_PREFIX)-ar |
---|
| 39 | LD = $(TOOL_PREFIX)-ld |
---|
| 40 | ASM = $(TOOL_PREFIX)-as |
---|
| 41 | CC = $(TOOL_PREFIX)-gcc |
---|
| 42 | STRIP = $(TOOL_PREFIX)-strip |
---|
| 43 | OBJCOPY = $(TOOL_PREFIX)-objcopy |
---|
| 44 | OBJDUMP = $(TOOL_PREFIX)-objdump |
---|
| 45 | |
---|
| 46 | LIBGCC = `$(CC) --print-libgcc-file-name` |
---|
| 47 | LIBDIR = $(LIBGCC:/libgcc.a=) |
---|
| 48 | NOF_LIBGCC = $(LIBDIR)/nof/libgcc.a |
---|
| 49 | |
---|
| 50 | # FLASHSUBDIR: |
---|
| 51 | # This is actually a portion of the PATH to the flash source files. |
---|
| 52 | # If not specified in the port-specific makefile, then assign the |
---|
| 53 | # default type of "devices". This then makes the assumption that |
---|
| 54 | # the files specified by the FLASHSRC variable in the port-specific |
---|
| 55 | # makefile are under $(BASE)/flash/devices (the new style flash |
---|
| 56 | # driver for uMon). For the older drivers, use the appropriate |
---|
| 57 | # directory found under "boards" in the umon_main tree. |
---|
| 58 | # The prefix $(BASE)/flash is assumed. |
---|
| 59 | # |
---|
| 60 | ifeq ($(FLASHSUBDIR),) |
---|
| 61 | FLASHSUBDIR = devices |
---|
| 62 | endif |
---|
| 63 | |
---|
| 64 | ifeq ($(FLASHDIR),) |
---|
| 65 | FLASHDIR = $(BASE)/flash/$(FLASHSUBDIR) |
---|
| 66 | endif |
---|
| 67 | |
---|
| 68 | # PORTDIR: |
---|
| 69 | # By default, PORTDIR is umon/umon_ports; however some ports are not part |
---|
| 70 | # of the CVS distribution; hence, umon/umon_ports sometimes needs to be |
---|
| 71 | # overridden... |
---|
| 72 | ifeq ($(PORTDIR),) |
---|
| 73 | PORTDIR = umon/umon_ports |
---|
| 74 | endif |
---|
| 75 | |
---|
| 76 | ############################################################################ |
---|
| 77 | # |
---|
| 78 | # Miscellaneous variables used by all targets: |
---|
| 79 | # |
---|
| 80 | DEPEND = depend |
---|
| 81 | DEPENDFILE = depends |
---|
| 82 | BUILDDIR = build_$(PLATFORM) |
---|
| 83 | |
---|
| 84 | COMMON_INCLUDE = -I. -I$(COMDIR) -I$(CPUDIR) -I$(FLASHDIR) -I$(DEVDIR) \ |
---|
| 85 | -I$(ZLIBDIR) $(PORT_INCLUDE) |
---|
| 86 | |
---|
| 87 | COMMON_CFLAGS = -g -c -Wall -DPLATFORM_$(PLATFORM)=1 \ |
---|
| 88 | -fno-builtin -fno-toplevel-reorder |
---|
| 89 | |
---|
| 90 | COMMON_AFLAGS = -xassembler-with-cpp -c -D PLATFORM_$(PLATFORM)=1 \ |
---|
| 91 | -D ASSEMBLY_ONLY |
---|
| 92 | |
---|
| 93 | CFLAGS = $(COMMON_CFLAGS) $(CUSTOM_CFLAGS) $(COMMON_INCLUDE) \ |
---|
| 94 | $(CUSTOM_INCLUDE) |
---|
| 95 | ASMFLAGS = $(COMMON_AFLAGS) $(CUSTOM_AFLAGS) $(COMMON_INCLUDE) \ |
---|
| 96 | $(CUSTOM_INCLUDE) |
---|
| 97 | |
---|
| 98 | |
---|
| 99 | MAKE_LDFILE = $(TOOLBIN)/vsub $(PLATFORM)_$(@F:.$(FILETYPE)=.ldt) \ |
---|
| 100 | $(PLATFORM)_$(@F:.$(FILETYPE)=.ld) |
---|
| 101 | MAKE_MONBUILT = $(CC) $(COMMON_CFLAGS) $(CUSTOM_CFLAGS) \ |
---|
| 102 | $(COMMON_INCLUDE) -omonbuilt.o $(COMDIR)/monbuilt.c |
---|
| 103 | MAKE_GNUSYMS = $(NM) --numeric-sort $@ > $(@:.$(FILETYPE)=.gsym) |
---|
| 104 | DUMP_MAP = $(OBJDUMP) -fh $@ |
---|
| 105 | MAKE_BINARY = $(OBJCOPY) -O binary $@ $(@:.$(FILETYPE)=.bin) |
---|
| 106 | LINK = $(LD) -nostartfiles -o $@ \ |
---|
| 107 | -T $(PLATFORM)_$(@F:.$(FILETYPE)=.ld) |
---|
| 108 | DISASSEMBLE = $(OBJDUMP) --source --disassemble $@> \ |
---|
| 109 | $(@:.$(FILETYPE)=.dis) |
---|
| 110 | |
---|
| 111 | MAKE_CTAGS = ctags --file-tags=yes -n -L cscope.files |
---|
| 112 | MAKE_MONSYMS = $(TOOLBIN)/monsym -p0x -Pmm_ -Sx $(@:.$(FILETYPE)=.gsym) > \ |
---|
| 113 | $(@:.$(FILETYPE)=.usym) |
---|
| 114 | DUMP_MAP_ALT = $(TOOLBIN)/$(FILETYPE) -m $@ |
---|
| 115 | MAKE_BINARY_ALT = $(TOOLBIN)/$(FILETYPE) -B $(@:.$(FILETYPE)=.bin) $@ |
---|
| 116 | |
---|
| 117 | ############################################################################ |
---|
| 118 | # |
---|
| 119 | # Various source lists used to build libraries: |
---|
| 120 | # |
---|
| 121 | FATFSSRC = ff.c ffcmd.c cc932.c |
---|
| 122 | |
---|
| 123 | ZLIBSRC = adler32.c gzio.c infblock.c infcodes.c inffast.c inflate.c \ |
---|
| 124 | inftrees.c infutil.c trees.c uncompr.c zcrc32.c zutil.c |
---|
| 125 | |
---|
| 126 | GLIBSRC = abs.c asctime.c atoi.c crc16.c crc32.c div.c \ |
---|
| 127 | getopt.c inrange.c ldiv.c memccpy.c memchr.c \ |
---|
| 128 | memcmp.c memcpy.c memset.c pollconsole.c prascii.c printmem.c \ |
---|
| 129 | smemcpy.c smemset.c strcat.c strchr.c strcasecmp.c \ |
---|
| 130 | strcmp.c strcpy.c strlen.c strncat.c strncmp.c \ |
---|
| 131 | strncpy.c strpbrk.c strrchr.c strstr.c strtok.c \ |
---|
| 132 | strtol.c strtoul.c strtolower.c swap.c ticktock.c |
---|