1# qrq Makefile -- Fabian Kurz, DJ1YFK -- http://fkurz.net/ham/qrq.html 2 3VERSION?=0.3.3 4DESTDIR?=/usr 5 6# set to YES if you want to use Core Audio 7# note that you must use Core Audio for OSX 8USE_CA=NO 9 10# set to YES if you want to use PulseAudio instead of OSS 11USE_PA=NO 12 13# set to YES if you compile with MINGW32 14USE_WIN32=NO 15 16# set to YES if building on OSX 17OSX_PLATFORM=NO 18 19# set to YES if you want make install to build an OSX bundle instead of 20# installing to DESTDIR 21# also directs qrq to look in bundle location for shared resources 22OSX_BUNDLE=YES 23 24ifneq ($(OSX_PLATFORM), YES) 25 OSX_BUNDLE=NO 26endif 27 28ifeq ($(USE_WIN32), YES) 29 CC=i686-w64-mingw32-gcc-posix 30#else 31# CC=gcc 32endif 33 34# build information may be added by CI scripts and will be 35# displayed in the help text (qrq -h) 36 37BUILD_INFO=" Date: $(shell date --iso=seconds)\n git branch/commit: $(shell if [ x${CI_COMMIT_REF_NAME} != x ]; then echo ${CI_COMMIT_REF_NAME} ; elif [ -e .git ] || [ -e ../.git ]; then git symbolic-ref --short HEAD ; else echo not built from git repository ; fi) / $(shell if [ x${CI_COMMIT_SHA} != x ]; then echo ${CI_COMMIT_SHA}; elif [ -e .git ] || [ -e ../.git ] ; then git rev-parse --verify HEAD ; else echo - ; fi )\n by $(USER)@$(shell hostname -f)\n OS: $(shell uname -s -r -p)\n Compiler: $(shell $(CC) --version | head -1)" 38 39CFLAGS:=$(CFLAGS) -D DESTDIR=\"$(DESTDIR)\" -D BUILD_INFO=\"$(BUILD_INFO)\" -D VERSION=\"$(VERSION)\" -I. 40 41ifeq ($(USE_CA), YES) 42 OBJECTS=qrq.o coreaudio.o 43 CFLAGS:=$(CFLAGS) -D CA -std=c99 -pthread 44 ifeq ($(OSX_PLATFORM), YES) 45 LDFLAGS:=$(LDFLAGS) -framework AudioUnit -framework CoreServices -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.5 46 CFLAGS:=$(CFLAGS) -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.5 47 ifeq ($(OSX_BUNDLE), YES) 48 CFLAGS:=$(CFLAGS) -D OSX_BUNDLE 49 endif 50 else # build for iphone/ipad 51 LDFLAGS:=$(LDFLAGS) -L iOSExtras/lib -framework AudioToolbox -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk 52 CFLAGS:=$(CFLAGS) -I iOSExtras/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk 53 CC:=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 54 IPHONE_HOST=root@localhost 55 SCP=scp -P2222 56 SSH=ssh -p2222 57 endif 58else ifeq ($(USE_PA), YES) 59 CFLAGS:=$(CFLAGS) -D PA -pthread 60 LDFLAGS:=$(LDFLAGS) -lpthread -lpulse-simple -lpulse -lncurses 61 OBJECTS=qrq.o pulseaudio.o 62else ifeq ($(USE_WIN32), YES) 63 CFLAGS:=$(CFLAGS) -D WIN32 -Iinclude -Iinclude/ncursesw 64 LDFLAGS:=$(LDFLAGS) -lwinmm -lpthread 65 OBJECTS=qrq.o qrq.res lib/libncursesw.a 66else 67 OBJECTS=qrq.o oss.o 68 LDFLAGS:=$(LDFLAGS) -lpthread -lncurses 69 CFLAGS:=$(CFLAGS) -D OSS 70endif 71 72all: qrq 73 74qrq: $(OBJECTS) 75 $(CC) -Wall -o $@ $^ -lm $(LDFLAGS) 76 77.c.o: 78 $(CC) -Wall $(CFLAGS) -c $< 79 80#.cpp.o: 81# g++ $(CFLAGS) -c $< 82 83ifeq ($(OSX_BUNDLE), YES) 84 85install: qrq 86 install -d -v qrq.app/Contents 87 install -d -v qrq.app/Contents/MacOS 88 install -d -v qrq.app/Contents/Resources 89 install -d -v qrq.app/Contents/Resources/share/qrq/ 90 install -d -v qrq.app/Contents/Resources/share/man/man1/ 91 install -m 0755 qrq qrq.app/Contents/MacOS/ 92 install -m 0755 qrqscore qrq.app/Contents/MacOS/ 93 install -m 0644 qrq.1 qrq.app/Contents/Resources/share/man/man1/ 94 install -m 0644 callbase.qcb qrq.app/Contents/Resources/share/qrq/ 95 install -m 0644 english.qcb qrq.app/Contents/Resources/share/qrq/ 96 install -m 0644 qrqrc qrq.app/Contents/Resources/share/qrq/ 97 install -m 0644 toplist qrq.app/Contents/Resources/share/qrq/ 98 install -m 0644 OSXExtras/qrq.icns qrq.app/Contents/Resources/ 99 install -m 0755 OSXExtras/qrqsh qrq.app/Contents/MacOS/ 100 sed 's/VERSION/$(VERSION)/' OSXExtras/Info.plist > qrq.app/Contents/Info.plist 101 102uninstall: 103 rm -rf qrq.app 104 105else 106 107install: qrq 108 mkdir -p $(DESTDIR)$(PREFIX)/share/qrq/ 109 $(BSD_INSTALL_PROGRAM) qrq $(DESTDIR)$(PREFIX)/bin/ 110 $(BSD_INSTALL_SCRIPT) qrqscore $(DESTDIR)$(PREFIX)/bin/ 111 $(BSD_INSTALL_MAN) qrq.1 $(DESTDIR)$(PREFIX)/man/man1/ 112 $(BSD_INSTALL_DATA) callbase.qcb $(DESTDIR)$(PREFIX)/share/qrq/ 113 $(BSD_INSTALL_DATA) english.qcb $(DESTDIR)$(PREFIX)/share/qrq/ 114 $(BSD_INSTALL_DATA) qrqrc $(DESTDIR)$(PREFIX)/share/qrq/ 115 $(BSD_INSTALL_DATA) toplist $(DESTDIR)$(PREFIX)/share/qrq/ 116 117 118uninstall: 119 rm -f $(DESTDIR)/bin/qrq 120 rm -f $(DESTDIR)/bin/qrqscore 121 rm -f $(DESTDIR)/share/man/man1/qrq.1 122 rm -f $(DESTDIR)/share/qrq/callbase.qcb 123 rm -f $(DESTDIR)/share/qrq/english.qcb 124 rm -f $(DESTDIR)/share/qrq/qrqrc 125 rm -f $(DESTDIR)/share/qrq/toplist 126 rmdir $(DESTDIR)/share/qrq/ 127 128endif 129 130package: qrq 131 export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate; ldid -s qrq 132 rm -rf qrq-pkg 133 install -d -v qrq-pkg/$(DESTDIR)/share/qrq/ 134 install -d -v qrq-pkg/$(DESTDIR)/share/man/man1/ 135 install -d -v qrq-pkg/$(DESTDIR)/bin/ 136 install -d -v qrq-pkg/DEBIAN/ 137 install -s -m 0755 qrq qrq-pkg/$(DESTDIR)/bin/ 138 install -m 0755 qrqscore qrq-pkg/$(DESTDIR)/bin/ 139 install -m 0644 qrq.1 qrq-pkg/$(DESTDIR)/share/man/man1/ 140 install -m 0644 callbase.qcb qrq-pkg/$(DESTDIR)/share/qrq/ 141 install -m 0644 english.qcb qrq-pkg/$(DESTDIR)/share/qrq/ 142 install -m 0644 qrqrc qrq-pkg/$(DESTDIR)/share/qrq/ 143 install -m 0644 toplist qrq-pkg/$(DESTDIR)/share/qrq/ 144 install -m 0644 control qrq-pkg/DEBIAN/ 145 export COPYFILE_DISABLE=1; export COPY_EXTENDED_ATTRIBUTES_DISABLE=1; dpkg-deb -b qrq-pkg cydiastore_com.kb1ooo.qrq_v$(shell grep ^Version: control | cut -d ' ' -f 2).deb 146 $(SCP) cydiastore_com.kb1ooo.qrq_v$(shell grep ^Version: control | cut -d ' ' -f 2).deb $(IPHONE_HOST):/tmp 147 $(SSH) $(IPHONE_HOST) "dpkg -i /tmp/cydiastore_com.kb1ooo.qrq_v$(shell grep ^Version: control | cut -d ' ' -f 2).deb" 148 149clean: 150 rm -f qrq.exe qrq toplist-old *~ *.o README 151 rm -rf Summary 152 rm -rf qrq.app 153 154dist: 155 sed 's/Version [0-9].[0-9].[0-9]/Version $(VERSION)/g' ../README > README 156 mkdir -p ../releases 157 rm -f ../releases/qrq-$(VERSION).tar.gz 158 rm -rf ../releases/qrq-$(VERSION) 159 mkdir qrq-$(VERSION) 160 cp qrq.png qrqscore qrq.c qrqrc callbase.qcb toplist \ 161 ../AUTHORS ../ChangeLog README ../COPYING qrq.1 Makefile qrqinstaller.nsi \ 162 english.qcb qrq.ico qrq.rc \ 163 qrq-$(VERSION) 164 cp coreaudio.c coreaudio.h oss.c oss.h \ 165 qrq-$(VERSION) 166 cp pulseaudio.h pulseaudio.c qrq-$(VERSION) 167 cp -r OSXExtras qrq-$(VERSION) 168 rm -rf qrq-$(VERSION)/OSXExtras/.svn/ 169 tar -zcf qrq-$(VERSION).tar.gz qrq-$(VERSION) 170 mv qrq-$(VERSION) ../releases/ 171 mv qrq-$(VERSION).tar.gz ../releases/ 172 md5sum ../releases/*.gz > ../releases/md5sums.txt 173 174