aboutsummaryrefslogtreecommitdiff
path: root/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile')
-rw-r--r--makefile96
1 files changed, 59 insertions, 37 deletions
diff --git a/makefile b/makefile
index 352dd7d..126e864 100644
--- a/makefile
+++ b/makefile
@@ -1,37 +1,59 @@
-all: mjLib
-
-VC = "C:\Program Files\Microsoft Visual Studio .NET\Vc7"
-INCLUDE = -I. -I..\src \
--I..\Tcl\include -I$(VC)\include -I"C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include"
-
-LDIR = $(VC)\lib
-LDIR2 = "C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib"
-
-LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel \
- /NODEFAULTLIB:uuid \
- $(LDIR)\libc.lib $(LDIR)\oldnames.lib $(LDIR)\kernel32.lib \
- $(LDIR2)\wsock32.lib $(LDIR2)\winmm.lib \
- ..\bin\pd.lib
-GLIB = $(LIB) ..\lib\tcl83.lib ..\lib\tk83.lib
-CFLAGS = /nologo /W3 /WX /DNT /DPD /Ox /Zi /DVERSION=\"1\"
-LFLAGS = /nologo
-
-SRC = pin~.c mjLib.c metroplus.c monorythm.c prob.c about.c synapseA~.c convolve~.c n2m.c morse.c
-
-OBJ = $(SRC:.c=.obj)
-
-.c.obj:
- cl /c $(CFLAGS) $(INCLUDE) $*.c
-
-
-mjLib: ..\mjLib\mjLib.dll
-
-..\mjLib\mjLib.dll ..\mjLib\mjLib.lib: $(OBJ)
- link $(LFLAGS) /debug /dll /export:mjLib_setup \
- /out:..\mjLib\mjLib.dll $(OBJ) $(LIB)
-
-
-# the following should also clean up "bin" but it doesn't because "bin" holds
-# precious stuff from elsewhere.
-clean:
- del *.obj
+
+EXT = pd_linux
+DEFS = -DHAVE_LIBC=1 -DHAVE_LIBM=1 -DHAVE_LIBPTHREAD=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_SOCKET=1 -DHAVE_STRERROR=1 -DPD_VERSION_MINOR=32
+CC = gcc
+CXX = c++
+LD = ld
+AFLAGS =
+LFLAGS = -export_dynamic -shared
+WFLAGS =
+IFLAGS = -I./include -I../src
+INSTALL_PREFIX=/usr/local
+
+VERSION = \"$(shell cat VERSION)\"
+
+.SUFFIXES: .$(EXT)
+
+PDCFLAGS = -g -O2 $(DEFS) $(IFLAGS) $(WFLAGS) $(LFLAGS) $(AFLAGS) -DVERSION=$(VERSION)
+CFLAGS = -g -O2 $(DEFS) $(IFLAGS) $(WFLAGS) -DVERSION=$(VERSION)
+CXXFLAGS = $(CFLAGS)
+
+#LIBS = -lc -lm
+LIBS = -lpthread -lm -lc
+SOURCES = pin~.c mjLib.c metroplus.c monorythm.c prob.c about.c synapseA~.c convolve.c
+TARGETS = $(SOURCES:.c=.$(EXT))
+
+all: $(TARGETS)
+
+mjLib: $(TARGETS)
+ cc -c $(CFLAGS) -DPD mjLib.c
+ $(LD) -export_dynamic -shared -o mjLib.pd_linux *.o $(LIBS)
+ strip --strip-unneeded mjLib.pd_linux
+
+clean::
+ -rm *.$(EXT) *.o
+
+distclean: clean
+ -rm config.cache config.log config.status makefile
+
+
+
+.c.o:
+ $(CC) -c -o $@ $(CFLAGS) -DPD $*.c
+
+# cp $@ $*_stat.o
+
+.o.pd_linux:
+ $(CC) -o $@ $(PDCFLAGS) -DPD $*.o
+
+
+
+install::
+ install -d $(INSTALL_PREFIX)/pd/externs
+ install -m 644 *.$(EXT) $(INSTALL_PREFIX)/pd/externs
+ -install -m 644 mjLib.pd_linux $(INSTALL_PREFIX)/pd/externs
+ install -m 644 doc/*.pd $(INSTALL_PREFIX)/pd/doc/5.reference
+
+
+dist: distclean
+ (cd ..;tar czvf mjLib.tar.gz mjLib)