[PD-cvs] pd/src makefile.mingw,NONE,1.3.4.1
Hans-Christoph Steiner
eighthave at users.sourceforge.net
Tue Nov 6 20:31:55 CET 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27174
Added Files:
Tag: branch-v0-40-extended
makefile.mingw
Log Message:
added MinGW makefile and put -I/usr/local/include before -Ipd/src since the MinGW build just decided to freak out and stop finding the headers
--- NEW FILE: makefile.mingw ---
# http://lists.puredata.info/pipermail/pd-dev/2004-10/002981.html
cvs_root_dir = ../..
pd_src = $(cvs_root_dir)/pd
BIN_DIR = $(pd_src)/bin
OBJ_DIR = $(pd_src)/obj
VPATH = $(OBJ_DIR):$(pd_src)/src
prefix = ..
exec_prefix = $(prefix)
includedir = $(prefix)/include
libdir = $(exec_prefix)/lib
mandir = $(prefix)/man
bindir = $(exec_prefix)/bin
GFLAGS = -DINSTALL_PREFIX=\"$(prefix)\"
# varibles to match packages/Makefile.buildlayout so that they can be easily
# overridden when building Pd-extended builds. <hans at at.or.at>
libpddir = $(DESTDIR)$(prefix)
pddocdir = $(libpddir)/doc
libpdbindir = $(libpddir)/bin
PDEXEC = pd.exe
GUINAME= pdtcl.dll
DLLWRAP= dllwrap
MORECFLAGS = -O3 -funroll-loops -fomit-frame-pointer
PADIR = $(pd_src)/portaudio
ASIODIR = $(pd_src)/asio
INCPA = -I$(PADIR) -I$(ASIODIR) -I$(PADIR)/pa_common -I$(PADIR)/pablio \
-I$(PADIR)/pa_asio
INCLUDE = -I$(pd_src)/src
GINCLUDE = -I/usr/local/include $(INCLUDE)
LDFLAGS =
LIBS = -lm -lpthreadGC2 -lwsock32 -lwinmm -lole32 -ltcl84 -ltk84
OPT_CFLAGS =
WARN_CFLAGS = -Wall -W -Wstrict-prototypes -Wno-unused \
-Wno-unused-parameter -Wno-parentheses -Wno-switch
ARCH_CFLAGS = -DPD -DPD_INTERNAL -DMSW -DNT -DPA_NO_DS -DUSEAPI_MMIO \
-DUSEAPI_PORTAUDIO -DPA19 -DPA_LITTLE_ENDIAN -mms-bitfields
CFLAGS += $(ARCH_CFLAGS) $(WARN_CFLAGS) $(OPT_CFLAGS) $(MORECFLAGS)
STRIP = strip --strip-unneeded -R .note -R .comment
# the sources
PASRC = s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
s_audio_mmio.c s_midi_mmio.c \
$(PADIR)/pa_common/pa_stream.c \
$(PADIR)/pa_common/pa_trace.c \
$(PADIR)/pa_common/pa_skeleton.c \
$(PADIR)/pa_common/pa_process.c \
$(PADIR)/pa_common/pa_front.c \
$(PADIR)/pa_common/pa_dither.c \
$(PADIR)/pa_common/pa_cpuload.c \
$(PADIR)/pa_common/pa_converters.c \
$(PADIR)/pa_common/pa_allocation.c \
$(PADIR)/pa_win/pa_win_util.c \
$(PADIR)/pa_win/pa_win_hostapis.c \
$(PADIR)/pa_win_wmme/pa_win_wmme.c
ASIOSRC = $(PADIR)/pa_asio/iasiothiscallresolver.cpp \
$(PADIR)/pa_asio/pa_asio.cpp $(ASIODIR)/asio.cpp \
$(ASIODIR)/asiodrivers.cpp $(ASIODIR)/asiolist.cpp
#VSRC = s_audio_vst.c
GSRC = t_main.c t_tkcmd.c
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_mycanvas.c g_numbox.c g_toggle.c \
g_hslider.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_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \
d_math.c d_fft.c d_fft_mayer.c d_fftroutine.c d_array.c d_global.c \
d_delay.c d_resample.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 \
x_list.c d_soundfile.c g_vslider.c g_vdial.c
SRSRC = u_pdsend.c u_pdreceive.c
OBJ = $(SRC:.c=.o)
GOBJ = $(GSRC:.c=.o)
SROBJ = $(SRSRC:.c=.o)
PAOBJ = $(PASRC:.c=.o)
ASIOOBJ = $(ASIOSRC:.cpp=.o)
#VOBJ = $(VSRC:.c=.o)
OBJC = $(OBJ) $(PAOBJ) $(ASIOOBJ)
# get version from m_pd.h to use in doc/1.manual/1.introduction.txt
PD_MAJOR_VERSION := $(shell grep PD_MAJOR_VERSION m_pd.h | \
sed 's|^.define *PD_MAJOR_VERSION *\([0-9]*\).*|\1|' )
PD_MINOR_VERSION := $(shell grep PD_MINOR_VERSION m_pd.h | \
sed 's|^.define *PD_MINOR_VERSION *\([0-9]*\).*|\1|' )
PD_BUGFIX_VERSION := $(shell grep PD_BUGFIX_VERSION m_pd.h | \
sed 's|^.define *PD_BUGFIX_VERSION *\([0-9]*\).*|\1|' )
PD_TEST_VERSION := $(shell grep PD_TEST_VERSION m_pd.h | \
sed 's|^.define *PD_TEST_VERSION *"\(.*\)".*|\1|' )
PD_VERSION := $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
ifneq ($(PD_TEST_VERSION),)
PD_VERSION := $(PD_VERSION)-$(PD_TEST_VERSION)
endif
#
# ------------------ targets ------------------------------------
#
.PHONY: all install clean externs
all: $(OBJ_DIR)/$(GUINAME) $(OBJ_DIR)/$(PDDLL) $(OBJ_DIR)/$(PDEXEC) \
$(OBJ_DIR)/pdsend.exe $(OBJ_DIR)/pdreceive.exe $(OBJ_DIR)/pd.com \
$(OBJ_DIR)/pd.tk externs
$(OBJ) : %.o : %.c
$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
$(GOBJ) : %.o : %.c
$(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
$(SROBJ) : %.o : %.c
$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
$(PAOBJ) : %.o : %.c
$(CC) $(CFLAGS) $(GFLAGS) $(INCPA) -c -o $(OBJ_DIR)/$*.o $*.c
$(ASIOOBJ) : %.o : %.cpp
g++ $(CFLAGS) $(INCPA) -c -o $(OBJ_DIR)/$*.o $*.cpp
$(VOBJ) : %.o : %.c
$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
$(OBJ_DIR)/pdsend.exe: u_pdsend.o
cd $(OBJ_DIR); $(CC) $(CFLAGS) $(LDFLAGS) -o pdsend.exe u_pdsend.o \
$(LIBS)
$(STRIP) $(OBJ_DIR)/pdsend.exe
$(OBJ_DIR)/pdreceive.exe: u_pdreceive.o
cd $(OBJ_DIR); $(CC) $(CFLAGS) $(LDFLAGS) -o pdreceive.exe u_pdreceive.o \
$(LIBS)
$(STRIP) $(OBJ_DIR)/pdreceive.exe
$(OBJ_DIR)/$(PDEXEC): s_entry.o
cd $(OBJ_DIR); $(CC) $(LDFLAGS) -mwindows -o $(PDEXEC) s_entry.o $(LIBS) \
-L$(OBJ_DIR) -lpd
$(STRIP) -s $(OBJ_DIR)/$(PDEXEC)
$(OBJ_DIR)/pd.com: s_entry.o
cd $(OBJ_DIR); $(CC) $(LDFLAGS) -o pd.com s_entry.o $(LIBS) \
-L$(OBJ_DIR) -lpd
$(STRIP) -s $(OBJ_DIR)/pd.com
$(OBJ_DIR)/$(PDDLL): $(OBJC)
cd $(OBJ_DIR) && g++ -shared $(LDFLAGS) -o pd.dll $(OBJC) $(LIBS) \
-Wl,--export-all-symbols -Wl,--out-implib=pd.a;
$(STRIP) $(OBJ_DIR)/$(PDDLL)
$(OBJ_DIR)/$(GUINAME): t_tkcmd.o
cd $(OBJ_DIR); $(DLLWRAP) --export-all-symbols --output-def pdtcl.def \
--output-lib=pdtcl.a --dllname=$(GUINAME) t_tkcmd.o $(LIBS)
$(STRIP) $(OBJ_DIR)/$(GUINAME)
#$(OBJ_DIR)/vstschedlib.dll: $(VOBJ)
# cd $(OBJ_DIR); $(DLLWRAP) --export-all-symbols --output-def vst.def \
# --output-lib=vst.a --dllname=vstschedlib.dll s_audio_vst.o pd.a $(LIBS)
$(OBJ_DIR)/pd.tk: u_main.tk
cp u_main.tk $(OBJ_DIR)/pd.tk
# for making objects included with Pd, [expr] is whacky, so its built separately
EXTERNALS_SRC := $(wildcard $(pd_src)/extra/[a-df-z]*/*.c)
EXPR_SRC = vexp.c vexp_fun.c vexp_if.c
EXPR_OBJ = $(patsubst %.c, $(pd_src)/extra/expr~/%.o, $(EXPR_SRC))
expr_src = $(pd_src)/extra/expr~
externs: $(EXTERNALS_SRC:.c=.dll) $(expr_src)/expr.dll $(expr_src)/expr~.dll \
$(expr_src)/fexpr~.dll
$(expr_src)/expr.dll: $(EXPR_OBJ)
$(CC) $(CFLAGS) $(INCLUDE) $(LDFLAGS) -shared -o $(expr_src)/expr.dll \
$(EXPR_OBJ) $(LIBS) -L$(OBJ_DIR) -lpd
$(expr_src)/expr~.dll: $(EXPR_OBJ)
$(CC) $(CFLAGS) $(INCLUDE) $(LDFLAGS) -shared -o $(expr_src)/expr~.dll \
$(EXPR_OBJ) $(LIBS) -L$(OBJ_DIR) -lpd
$(expr_src)/fexpr~.dll: $(EXPR_OBJ)
$(CC) $(CFLAGS) $(INCLUDE) $(LDFLAGS) -shared -o $(expr_src)/fexpr~.dll \
$(EXPR_OBJ) $(LIBS) -L$(OBJ_DIR) -lpd
%.o: %.c
$(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c
%.dll: %.o
$(CC) $(CFLAGS) $(INCLUDE) $(LDFLAGS) -shared -o $*.dll $*.o $(LIBS) \
-L$(OBJ_DIR) -lpd
# $(STRIP) $*.dll
ABOUT_FILE=$(pddocdir)/1.manual/1.introduction.txt
install: all
# temp kludge to put stuff into the pd/bin dir
install -d $(BIN_DIR)
install -p $(OBJ_DIR)/$(GUINAME) $(BIN_DIR)
install -p $(OBJ_DIR)/pd.tk $(BIN_DIR)
install -p $(OBJ_DIR)/$(PDEXEC) $(BIN_DIR)
install -p $(OBJ_DIR)/pd.com $(BIN_DIR)
install -p $(OBJ_DIR)/pd.dll $(BIN_DIR)
# the real install
install -d $(DESTDIR)$(bindir)
install -p $(OBJ_DIR)/$(GUINAME) $(DESTDIR)$(bindir)/$(GUINAME)
install -p $(OBJ_DIR)/pd.tk $(DESTDIR)$(bindir)/pd.tk
install -p $(OBJ_DIR)/$(PDEXEC) $(DESTDIR)$(bindir)/$(PDEXEC)
install -p $(OBJ_DIR)/pd.com $(DESTDIR)$(bindir)/pd.com
install -p $(OBJ_DIR)/pd.dll $(DESTDIR)$(bindir)/pd.dll
install -p $(OBJ_DIR)/pdsend.exe $(DESTDIR)$(bindir)/pdsend.exe
install -p $(OBJ_DIR)/pdreceive.exe $(DESTDIR)$(bindir)/pdreceive.exe
for dir in $(shell ls -1 ../doc | grep -v CVS); do \
echo "installing $$dir"; \
install -d $(pddocdir)/$$dir ; \
install -p ../doc/$$dir/*.* $(pddocdir)/$$dir ; \
done
for dir in $(shell ls -1 ../doc/7.stuff | grep -v CVS); do \
echo "installing 7.stuff/$$dir"; \
install -d $(pddocdir)/7.stuff/$$dir ; \
install -p ../doc/7.stuff/$$dir/*.* $(pddocdir)/7.stuff/$$dir ; \
done
mv $(ABOUT_FILE) $(ABOUT_FILE).tmp
cat $(ABOUT_FILE).tmp | sed 's|PD_VERSION|Pd version $(PD_VERSION)|' \
> $(ABOUT_FILE)
rm $(ABOUT_FILE).tmp
install -d $(libpddir)/extra
install -p $(pd_src)/extra/*/*.dll $(libpddir)/extra
install -d $(pddocdir)/5.reference
install -p ../extra/*/*.pd $(pddocdir)/5.reference
install -d $(DESTDIR)$(includedir)
install -p m_pd.h $(DESTDIR)$(includedir)/m_pd.h
@echo "Pd install succeeded."
clean:
-rm -f -- $(BIN_DIR)/*.*
-rm -f -- $(OBJ_DIR)/*.o $(OBJ_DIR)/*.a $(OBJ_DIR)/*.def
-rm -f -- $(OBJ_DIR)/pd*.exe $(OBJ_DIR)/pd*.dll $(OBJ_DIR)/pd.com
-rm -f -- $(OBJ_DIR)/pd*.exe $(OBJ_DIR)/pd*.dll $(OBJ_DIR)/pd.com
-rm -f -- $(PADIR)/pablio/*.o $(PADIR)/pa_common/*.o
-rm -f -- $(PADIR)/pa_asio/*.o $(OBJ_DIR)/pd.tk
-rm -f -- $(pd_src)/extra/*/*.dll $(pd_src)/extra/*/*.o
-rm -f makefile.dependencies
touch makefile.dependencies
chmod 666 makefile.dependencies
distclean: clean
rm -rf config.cache config.log config.status makefile tags \
autom4te-*.cache
echo all: > makefile
echo -e "\t./configure" >> makefile
echo -e "\tmake" >> makefile
tags: $(SRC) $(GSRC); ctags *.[ch]
depend:
$(CC) $(INCLUDE) $(CFLAGS) -M $(SRC) > makefile.dependencies
uninstall:
-rm $(prefix)/bin/pd*.exe
-rm $(prefix)/bin/pd*.com
-rm $(prefix)/bin/pd*.dll
-rm $(prefix)/bin/*.tk
test_locations:
@echo "PD_VERSION: $(PD_VERSION)"
@echo "PACKAGE_VERSION: $(PACKAGE_VERSION)"
@echo "CWD $(CWD)"
@echo "DESTDIR $(DESTDIR)"
@echo "PREFIX $(prefix)"
@echo "BINDIR $(bindir)"
@echo "LIBDIR $(libdir)"
@echo "OBJECTSDIR $(objectsdir)"
@echo "PDDOCDIR $(pddocdir)"
@echo "LIBPDDIR $(libpddir)"
@echo "LIBPDBINDIR $(libpdbindir)"
@echo "HELPDIR $(helpdir)"
@echo "MANUALSDIR $(manualsdir)"
@echo "EXAMPLESDIR $(examplesdir)"
include makefile.dependencies
More information about the Pd-cvs
mailing list