Add "MikMod for Rockbox 0.1" from 2007-06-29
[mikmod-rockbox.git] / apps / plugins / mikmod / Makefile
1 #             __________               __   ___.\r
2 #   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___\r
3 #   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /\r
4 #   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <\r
5 #   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \\r
6 #                     \/            \/     \/    \/            \/\r
7 # $Id: Makefile 13515 2007-05-29 16:33:16Z nls $\r
8 #\r
9 \r
10 INCLUDES = -I$(APPSDIR) \\r
11                         -I.. \\r
12                         -I. $(TARGET_INC) \\r
13                         -I$(FIRMDIR)/include \\r
14                         -I$(FIRMDIR)/export \\r
15                         -I$(FIRMDIR)/common \\r
16                         -I$(FIRMDIR)/drivers \\r
17                         -I$(OUTDIR) \\r
18                         -I$(BUILDDIR) \\r
19                         -I./include\r
20 CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \\r
21  -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN -DHAVE_SNPRINTF\r
22 \r
23 ifdef APPEXTRA\r
24    INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))\r
25 endif\r
26 \r
27 LINKFILE := $(OBJDIR)/link.lds\r
28 DEPFILE = $(OBJDIR)/dep-mikmod\r
29 SRC = mikmod.c \\r
30         loaders/load_669.c \\r
31         loaders/load_amf.c \\r
32         loaders/load_asy.c \\r
33         loaders/load_dsm.c \\r
34         loaders/load_far.c \\r
35         loaders/load_gdm.c \\r
36         loaders/load_imf.c \\r
37         loaders/load_it.c \\r
38         loaders/load_m15.c \\r
39         loaders/load_med.c \\r
40         loaders/load_mod.c \\r
41         loaders/load_mtm.c \\r
42         loaders/load_s3m.c \\r
43         loaders/load_stm.c \\r
44         loaders/load_stx.c \\r
45         loaders/load_ult.c \\r
46         loaders/load_uni.c \\r
47         loaders/load_xm.c \\r
48         mmio/mmalloc.c \\r
49         mmio/mmerror.c \\r
50         mmio/mmio.c \\r
51         playercode/mdriver.c \\r
52         playercode/mloader.c \\r
53         playercode/mlreg.c \\r
54         playercode/mlutil.c \\r
55         playercode/mplayer.c \\r
56         playercode/munitrk.c \\r
57         playercode/mwav.c \\r
58         playercode/npertab.c \\r
59         playercode/sloader.c \\r
60         playercode/virtch2.c \\r
61         playercode/virtch.c \\r
62         playercode/virtch_common.c\r
63 \r
64 SOURCES = $(SRC)\r
65 OBJS := $(SRC:%.c=$(OBJDIR)/%.o)\r
66 DIRS = .\r
67 \r
68 ifndef SIMVER\r
69 ifneq (,$(strip $(foreach tgt,RECORDER ONDIO,$(findstring $(tgt),$(TARGET)))))\r
70     LDS := archos.lds\r
71     OUTPUT = $(OUTDIR)/mikmod.ovl\r
72 else  ## iRiver target\r
73     LDS := ../plugin.lds\r
74     OUTPUT = $(OUTDIR)/mikmod.rock\r
75 endif\r
76 else  ## simulators\r
77     OUTPUT = $(OUTDIR)/mikmod.rock\r
78 endif\r
79 \r
80 all: $(OUTPUT)\r
81 \r
82 ifndef SIMVER\r
83 $(OBJDIR)/mikmod.elf: $(OBJS) $(LINKFILE) $(BITMAPLIBS)\r
84         $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) -o $@ $(OBJS) -L$(BUILDDIR) -lplugin -lgcc \\r
85            $(LINKBITMAPS) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/mikmod.map\r
86 \r
87 $(OUTPUT): $(OBJDIR)/mikmod.elf\r
88         $(call PRINTS,OBJCOPY $(@F))$(OC) -O binary $< $@\r
89 else\r
90 \r
91 ifeq ($(SIMVER), x11)\r
92 ###################################################\r
93 # This is the X11 simulator version\r
94 \r
95 $(OUTPUT): $(OBJS)\r
96         $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin $(LINKBITMAPS) -o $@\r
97 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)\r
98 # 'x' must be kept or you'll have "Win32 error 5"\r
99 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1\r
100 #         #define ERROR_ACCESS_DENIED 5L\r
101 else\r
102         @chmod -x $@\r
103 endif\r
104 \r
105 else # end of x11-simulator\r
106 ifeq ($(SIMVER), sdl)\r
107 ###################################################\r
108 # This is the SDL simulator version\r
109 \r
110 $(OUTPUT): $(OBJS)\r
111         $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin $(LINKBITMAPS) -o $@\r
112 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)\r
113 # 'x' must be kept or you'll have "Win32 error 5"\r
114 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1\r
115 #         #define ERROR_ACCESS_DENIED 5L\r
116 else\r
117         @chmod -x $@\r
118 endif\r
119 \r
120 else # end of sdl-simulator\r
121 ###################################################\r
122 # This is the win32 simulator version\r
123 DLLTOOLFLAGS = --export-all\r
124 DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin\r
125 \r
126 $(OUTPUT): $(OBJS)\r
127         $(call PRINTS,DLL $(@F))$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $(OBJS)\r
128         $(SILENT)$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $(OBJS) \\r
129                 $(BUILDDIR)/libplugin.a $(BITMAPLIBS) -o $@\r
130 ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)\r
131 # 'x' must be kept or you'll have "Win32 error 5"\r
132 #     $ fgrep 5 /usr/include/w32api/winerror.h | head -1\r
133 #         #define ERROR_ACCESS_DENIED 5L\r
134 else\r
135         @chmod -x $@\r
136 endif\r
137 endif # end of win32-simulator\r
138 endif\r
139 endif # end of simulator section\r
140 \r
141 \r
142 include $(TOOLSDIR)/make.inc\r
143 \r
144 # MEMORYSIZE should be passed on to this makefile with the chosen memory size\r
145 # given in number of MB\r
146 $(LINKFILE): $(LDS)\r
147         $(call PRINTS,build $(@F))cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) \\r
148         $(DEFINES) -E -P - >$@\r
149 \r
150 clean:\r
151         $(call PRINTS,cleaning mikmod)rm -rf $(OBJDIR)/mikmod\r
152         $(SILENT)rm -f $(OBJDIR)/mikmod.* $(DEPFILE)\r
153 \r
154 -include $(DEPFILE)\r