1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins/pdbox/PDa/src/makefile
Peter D'Hoye 526b5580da Cut the files in half and it might work better (note to self: check your tree is really clean before patching)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21070 a1c6a512-1295-4272-9138-f99709370657
2009-05-24 21:28:16 +00:00

176 lines
4.8 KiB
Makefile

PREFIX = /usr/
EXT = pd_linux
# pd specific
VPATH = ../obj:./
OBJ_DIR = ../obj
BIN_DIR = ../bin
BROOT=/usr
X11LIB = $(BROOT)/X11R6/lib
DEFINES = -DPD -DUNIX
pd-gui_INCLUDES = -I$(BROOT)/include/tcl8.4 -I$(BROOT)/X11R6/include
pd-gui_LIBS = -ltk8.4 -ltcl8.4 -lX11 -ldl
pd-gui_LDFLAGS = -L$(X11LIB)
pd-gui_DEFINES = $(DEFINES)
pd_LIBS = -lm -lpthread -ldl
pd_LDFLAGS = -Wl,-export-dynamic
pd_DEFINES = $(DEFINES) -DINSTALL_PREFIX=\"$(PREFIX)\" \
-DFIXEDPOINT -DUSEAPI_OSS -DDL_OPEN
extra_DEFINES = $(DEFINES) -DFIXEDPOINT
extra_INCLUDES = -I../src
extra_LDFLAGS = -shared
# IPOD toolchain
ifeq ($(CC), arm-elf-gcc)
pd_LDFLAGS += -elf2flt
pd_LIBS = -lm -lpthread
pd_DEFINES = $(DEFINES) -DINSTALL_PREFIX=\"$(PREFIX)\" \
-DFIXEDPOINT -DUSEAPI_OSS -D__linux__ -Dfork=getpid
extra_DEFINES += -D__linux__ -Dfork=getpid
endif
# BLACKFIN toolchain
ifeq ($(CC), bfin-uclinux-gcc)
pd_LIBS = -lm -lpthread
pd_DEFINES = $(DEFINES) -DINSTALL_PREFIX=\"$(PREFIX)\" \
-DFIXEDPOINT -DUSEAPI_OSS -D__linux__
extra_DEFINES += -D__linux__
endif
# the sources
pd_SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
g_all_guis.c g_bang.c g_hdial.c g_hslider.c g_mycanvas.c g_numbox.c \
g_toggle.c g_vdial.c g_vslider.c g_vumeter.c \
m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \
m_conf.c m_glob.c m_sched.c \
s_main.c s_inter.c s_file.c s_print.c \
s_loader.c s_path.c s_entry.c s_audio.c s_midi.c \
d_ugen.c d_arithmetic.c d_dac.c d_misc.c \
d_fft.c d_mayer_fft.c d_fftroutine.c d_global.c \
d_resample.c d_ctl.c d_soundfile.c \
x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \
x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c \
s_midi_oss.c s_audio_oss.c
pd_SRC += d_imayer_fft.c m_fixed.c
pd_OBJ = $(pd_SRC:.c=.o)
pd-gui_SRC = t_main.c t_tkcmd.c
pd-gui_OBJ = $(pd-gui_SRC:.c=.o)
extra_SRC = $(shell ls ../intern/*.c) $(shell ls ../extra/*.c)
extra_OBJ = $(extra_SRC:.c=.o)
extra_EXT = $(extra_SRC:.c=.pd_linux)
#
# ------------------ targets ------------------------------------
#
all: $(BIN_DIR)/pd \
$(BIN_DIR)/pd-gui \
$(BIN_DIR)/pd-watchdog \
$(BIN_DIR)/pdsend \
$(BIN_DIR)/pdreceive \
$(BIN_DIR)/pd.tk \
extra
pd: $(BIN_DIR)/pd
pd-gui: $(BIN_DIR)/pd-gui
pd-watchdog: $(BIN_DIR)/pd-watchdog
static:
make pd_SRC="$(pd_SRC) $(extra_SRC)" DEFINES="-DPD -DUNIX -DSTATIC" \
pd pd-gui pd-watchdog $(BIN_DIR)/pdsend \
$(BIN_DIR)/pdreceive $(BIN_DIR)/pd.tk
extra: $(extra_EXT)
ipod:
make CC=arm-elf-gcc static
blackfin:
make CC=bfin-uclinux-gcc static
$(pd_OBJ) : %.o : %.c
$(CC) $(CFLAGS) $(pd_DEFINES) $(pd_INCLUDES) -c -o $(OBJ_DIR)/$@ $+
$(pd-gui_OBJ) : %.o : %.c
$(CC) $(CFLAGS) $(pd-gui_DEFINES) $(pd-gui_INCLUDES) -c -o $(OBJ_DIR)/$@ $+
$(extra_OBJ) : %.o : %.c
$(CC) $(CFLAGS) $(extra_DEFINES) $(extra_INCLUDES) -c -o $@ $*.c
$(extra_EXT) : %.$(EXT) : %.o
$(CC) -o $@ $(extra_LDFLAGS) $+
$(BIN_DIR)/pd-watchdog: s_watchdog.c
$(CC) $(CFLAGS) $(DEFINES) -o $@ s_watchdog.c
$(BIN_DIR)/pdsend: u_pdsend.c
$(CC) $(CFLAGS) $(DEFINES) -o $@ u_pdsend.c
$(BIN_DIR)/pdreceive: u_pdreceive.c
$(CC) $(CFLAGS) $(DEFINES) -o $@ u_pdreceive.c
$(BIN_DIR)/pd: $(pd_OBJ)
cd ../obj; $(CC) $(pd_LDFLAGS) -o $@ $(pd_OBJ) $(pd_LIBS)
$(BIN_DIR)/pd-gui: $(pd-gui_OBJ)
cd ../obj; $(CC) -o $@ $(pd-gui_OBJ) $(pd-gui_LDFLAGS) $(pd-gui_LIBS)
$(BIN_DIR)/pd.tk: u_main.tk
echo set pd_nt 0 > $(BIN_DIR)/pd.tk
grep -v "set pd_nt" < u_main.tk >> $@
INSTDIR = $(DESTDIR)/$(PREFIX)
install: all
# Create the directory structure
install -d $(INSTDIR)/lib/pd/bin
install -d $(INSTDIR)/lib/pd/extra
install -d $(INSTDIR)/lib/pd/intern
install -d $(INSTDIR)/lib/pd/doc
install -d $(INSTDIR)/bin
install -d $(INSTDIR)/include
install $(BIN_DIR)/pd-gui $(INSTDIR)/lib/pd/bin/
install $(BIN_DIR)/pd-watchdog $(INSTDIR)/lib/pd/bin/
install -m 644 $(BIN_DIR)/pd.tk $(INSTDIR)/lib/pd/bin/
install -m 755 $(BIN_DIR)/pd $(INSTDIR)/bin/
install -m 755 $(BIN_DIR)/pdsend $(INSTDIR)/bin/pdsend
install -m 755 $(BIN_DIR)/pdreceive $(INSTDIR)/bin/pdreceive
cp -r ../doc/7.stuff $(INSTDIR)/lib/pd/doc
cp -r ../doc/5.reference $(INSTDIR)/lib/pd/doc
install -m 644 m_pd.h $(INSTDIR)/include/m_pd.h
# Install the externals if possible
cp ../extra/*.pd_linux $(INSTDIR)/lib/pd/extra
cp ../intern/*.pd_linux $(INSTDIR)/lib/pd/intern
# Install the ICON and desktop file
install -d $(INSTDIR)/share/pixmaps
install -d $(INSTDIR)/share/applications
cp ../ipkg/pd-icon.png $(INSTDIR)/share/pixmaps
cp ../ipkg/pd.desktop $(INSTDIR)/share/applications/
clean:
-rm -f `find ../extra/ -name "*.pd_*"`
-rm -f tags
-rm -f ../obj/* $(BIN_DIR)/* ../extra/*.{o,$(EXT)} ../intern/*.{o,$(EXT)}
-rm -f *~
-rm -f $(BIN_DIR)/pdsend $(BIN_DIR)/pdreceive