mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-05 06:09:47 +02:00
189 lines
6.8 KiB
Makefile
189 lines
6.8 KiB
Makefile
# MAKEFILE FOR PORTMIDI AND PORTTIME
|
|
|
|
VFLAGS = -g
|
|
|
|
|
|
# For debugging, define PM_CHECK_ERRORS
|
|
PMFLAGS = -DPM_CHECK_ERRORS
|
|
# Otherwise do not define PM_CHECK_ERRORS
|
|
# PMFLAGS =
|
|
# Dynamic Lib is built without PM_CHECK_ERRORS
|
|
PMDLFLAGS =
|
|
# Path for installation of dynamic libraries
|
|
PF = /usr/local
|
|
# Architecture for static libs
|
|
ARCH = -arch ppc -arch i386
|
|
|
|
pmlib = pm_mac/libportmidi.a
|
|
|
|
CC = gcc $(VFLAGS) $(PMFLAGS) $(ARCH) -g -Ipm_common -Iporttime
|
|
|
|
MACLIB = -framework CoreMIDI -framework CoreFoundation -framework CoreAudio \
|
|
-framework CoreServices
|
|
|
|
PMSRC = pm_mac/pmmac.c pm_common/pmutil.c pm_common/portmidi.c \
|
|
pm_mac/pmmacosxcm.c pm_mac/readbinaryplist.c pm_mac/finddefault.c
|
|
|
|
PTSRC = porttime/porttime.c porttime/ptmacosx_mach.c
|
|
|
|
pmobjects = pm_common/pmutil.o pm_mac/pmmac.o \
|
|
pm_common/portmidi.o pm_mac/pmmacosxcm.o \
|
|
pm_mac/finddefault.o pm_mac/readbinaryplist.o \
|
|
porttime/porttime.o porttime/ptmacosx_mach.o
|
|
|
|
current: all
|
|
|
|
all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \
|
|
pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm
|
|
echo $$'\n\
|
|
**** For instructions: make -f pm_mac\Makefile.osx help ****\n'
|
|
|
|
help:
|
|
echo $$'\n\n\
|
|
This is help for portmidi/pm_mac/Makefile.osx\n\n\
|
|
Flags for static library and apps are $(PMFLAGS)\n\
|
|
Flags for dynamic library are $(PMDLFLAGS)\n\
|
|
Installation path for dylib is $(PF)\n\
|
|
You might want to change these.\n\n\
|
|
To build a static library and test applications,\n \
|
|
make -f pm_mac/Makefile.osx\n\
|
|
To build and install dynamic library, note you must use\n\
|
|
"cleanest" to remove .o and dylib, especially if this\n\
|
|
library uses different compiler flags:\n \
|
|
make -f pm_mac/Makefile.osx cleanest\n \
|
|
make -f pm_mac/Makefile.osx dylib\n\
|
|
To install dynamic library to /usr/local,\n \
|
|
sudo make -f pm_mac/Makefile.osx install\n\
|
|
To install universal dynamic library with xcode,\n \
|
|
make -f pm_mac/Makefile.osx install-with-xcode\n\
|
|
To make dynamic library for Java,\n \
|
|
make -f pm_mac/Makefile.osx cleanest\n \
|
|
make -f pm_mac/Makefile.osx jni\n\
|
|
To make PmDefaults Java application,\n \
|
|
make -f pm_mac/Makefile.osx pmdefaults\n\n'
|
|
|
|
$(pmlib): pm_mac/Makefile.osx $(pmobjects)
|
|
rm -rf $(pmlib)
|
|
ar -crs $(pmlib) $(pmobjects)
|
|
|
|
pm_mac/pmmacosxcm.o: pm_mac/Makefile.osx pm_mac/pmmacosxcm.c pm_mac/pmmacosxcm.h
|
|
$(CC) -c pm_mac/pmmacosxcm.c -o pm_mac/pmmacosxcm.o
|
|
|
|
pm_mac/readbinaryplist.o: pm_mac/Makefile.osx pm_mac/readbinaryplist.c pm_mac/readbinaryplist.h
|
|
$(CC) -c -I/Developer/Headers/FlatCarbon \
|
|
pm_mac/readbinaryplist.c -o pm_mac/readbinaryplist.o
|
|
|
|
pm_mac/finddefault.o: pm_mac/Makefile.osx pm_mac/finddefault.c pm_mac/pmmacosxcm.h
|
|
$(CC) -c pm_mac/finddefault.c -o pm_mac/finddefault.o
|
|
|
|
pm_test/test: pm_mac/Makefile.osx pm_test/test.o $(pmlib)
|
|
$(CC) pm_test/test.o -o pm_test/test $(pmlib) $(MACLIB)
|
|
|
|
pm_test/sysex: pm_mac/Makefile.osx pm_test/sysex.o $(pmlib)
|
|
$(CC) pm_test/sysex.o -o pm_test/sysex $(pmlib) $(MACLIB)
|
|
|
|
pm_test/midithread: pm_mac/Makefile.osx pm_test/midithread.o $(pmlib)
|
|
$(CC) pm_test/midithread.o -o pm_test/midithread \
|
|
$(pmlib) $(MACLIB)
|
|
|
|
pm_test/latency: pm_mac/Makefile.osx $(pmlib) pm_test/latency.o
|
|
$(CC) pm_test/latency.o -o pm_test/latency $(pmlib) \
|
|
$(MACLIB) -lpthread -lm
|
|
|
|
pm_test/midithru: pm_mac/Makefile.osx $(pmlib) pm_test/midithru.o
|
|
$(CC) pm_test/midithru.o -o pm_test/midithru $(pmlib) \
|
|
$(MACLIB) -lpthread -lm
|
|
|
|
pm_test/mm: pm_mac/Makefile.osx pm_test/mm.o $(pmlib)
|
|
$(CC) pm_test/mm.o -o pm_test/mm $(pmlib) $(MACLIB)
|
|
|
|
porttime/ptlinux.o: pm_mac/Makefile.osx porttime/ptlinux.c
|
|
$(CC) -c porttime/ptlinux.c -o porttime/ptlinux.o
|
|
|
|
pm_test/qtest: pm_mac/Makefile.osx pm_test/qtest.o $(pmlib)
|
|
$(CC) pm_test/qtest.o -o pm_test/qtest $(pmlib) $(MACLIB)
|
|
|
|
clean:
|
|
rm -f *.o *~ core* */*.o */*~ */core* pm_test/*/pm_dll.dll
|
|
rm -f *.opt *.ncb *.plg pm_win/Debug/pm_dll.lib pm_win/Release/pm_dll.lib
|
|
rm -f pm_test/*.opt pm_test/*.ncb
|
|
rm -f pm_java/pmjni/*.o pm_java/pmjni/*~ pm_java/*.h
|
|
|
|
cleaner: clean
|
|
rm -rf pm_mac/build
|
|
rm -f *.dylib
|
|
rm -f pm_mac/*.dylib
|
|
rm -f pm_java/pmjni/*.jnilib
|
|
|
|
cleanest: cleaner
|
|
rm -f $(pmlib) porttime/libporttime.dylib pm_mac/libportmidi.dylib
|
|
rm -f pm_test/test pm_test/sysex pm_test/midithread
|
|
rm -f pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm
|
|
rm -f pm_java/*/*.class
|
|
rm -f pm_java/pmjni/jportmidi_JPortMidiApi_PortMidiStream.h
|
|
|
|
backup: cleanest
|
|
cd ..; zip -r portmidi.zip portmidi
|
|
|
|
dylib: pm_mac/libportmidi.dylib
|
|
|
|
pm_mac/libportmidi.dylib: $(PMSRC) $(PTSRC)
|
|
cc -single_module -g $(PMDLFLAGS) -Iporttime -Ipm_common $(ARCH) \
|
|
-dynamiclib $(PMSRC) $(PTSRC) -o pm_mac/libportmidi.dylib \
|
|
-flat_namespace -undefined suppress \
|
|
-framework CoreMIDI -framework CoreFoundation \
|
|
-framework CoreAudio -framework CoreServices
|
|
|
|
install: porttime/porttime.h pm_common/portmidi.h \
|
|
pm_mac/libportmidi.dylib
|
|
install porttime/porttime.h $(PF)/include/
|
|
install pm_common/portmidi.h $(PF)/include
|
|
install pm_mac/libportmidi.dylib $(PF)/lib/
|
|
|
|
# note - this uses xcode to build and install portmidi universal binaries
|
|
install-with-xcode:
|
|
sudo xcodebuild -project pm_mac/pm_mac.xcodeproj \
|
|
-configuration Deployment install DSTROOT=/
|
|
|
|
##### build java interface and application ######
|
|
|
|
jni: pm_java/pmjni/libpmjni.jnilib
|
|
|
|
pm_java/pmjni/libpmjni.jnilib: $(PMSRC) pm_java/jportmidi/JPortMidiApi.class pm_java/pmjni/jportmidi_JPortMidiApi.h pm_java/pmjni/pmjni.c
|
|
cc -single_module -g -Iporttime -Ipm_common \
|
|
-Ipm_java/pmjni -I/System/Library/Frameworks/JavaVM.framework/Headers \
|
|
-I/Developer/Headers/FlatCarbon \
|
|
$(ARCH) -dynamiclib $(PMSRC) $(PTSRC) pm_java/pmjni/pmjni.c \
|
|
-o pm_java/pmjni/libpmjni.jnilib \
|
|
-flat_namespace -undefined suppress \
|
|
-framework CoreMIDI -framework CoreFoundation -framework CoreAudio \
|
|
-framework JavaVM
|
|
|
|
pm_java/pmjni/jportmidi_JPortMidiApi.h: pm_java/jportmidi/JPortMidiApi.class
|
|
cd pm_java; javah jportmidi.JPortMidiApi
|
|
mv pm_java/jportmidi_JportMidiApi.h pm_java/pmjni
|
|
|
|
JAVASRC = pmdefaults/PmDefaultsFrame.java \
|
|
pmdefaults/PmDefaults.java \
|
|
jportmidi/JPortMidiApi.java jportmidi/JPortMidi.java \
|
|
jportmidi/JPortMidiException.java
|
|
|
|
# this compiles ALL of the java code
|
|
pm_java/jportmidi/JPortMidiApi.class: $(JAVASRC:%=pm_java/%)
|
|
cd pm_java; javac $(JAVASRC)
|
|
|
|
pmdefaults: pm_java/pmjni/libpmjni.jnilib pm_java/jportmidi/JPortMidiApi.class
|
|
echo "pmdefaults java application is made"
|
|
|
|
###### test plist reader #######
|
|
PLHDR = pm_mac/readbinaryplist.h
|
|
PLSRC = pm_mac/plisttest.c pm_mac/readbinaryplist.c
|
|
pm_mac/plisttest: $(PLHDR) $(PLSRC)
|
|
cc -g -Ipm_mac \
|
|
-I/Developer/Headers/FlatCarbon \
|
|
-I/System/Library/Frameworks/CoreFoundation.framework/Headers \
|
|
-I/System/Library/Frameworks/CoreServices.framework/Headers \
|
|
$(PLSRC) -o pm_mac/plisttest \
|
|
-framework CoreFoundation -framework CoreServices
|
|
|