1RT=$(RW)rtk/ 2WD=$(RW)widgets/robtk_ 3PKG_CONFIG?=pkg-config 4STRIP?=strip 5LIBSTRIPFLAGS?=-s 6APPSTRIPFLAGS?=-s 7WINDRES=$(XWIN)-windres 8UNAME?=$(shell uname) 9 10JACKEXTRA= 11OSXJACKWRAP= 12PTHREADCFLAGS= 13 14ifeq ($(UNAME),Darwin) 15 OSXJACKWRAP=$(RW)jackwrap.mm 16 USEWEAKJACK=1 17 LIBSTRIPFLAGS=-u -r -arch all -s $(RW)lv2uisyms 18 APPSTRIPFLAGS=-u -r -arch all 19endif 20 21ifneq ($(XWIN),) 22 USEWEAKJACK=1 23 JACKCFLAGS+=-mwindows 24 ifeq ($(shell test -f img/x42.ico && echo yes), yes) 25 JACKEXTRA+=win_icon.rc.o 26 endif 27else 28 PTHREADCFLAGS=-pthread 29endif 30 31ifeq ($(USEWEAKJACK),1) 32 JACKCFLAGS+=-DUSE_WEAK_JACK 33 JACKEXTRA+=$(RW)weakjack/weak_libjack.c 34 ifeq ($(XWIN),) 35 JACKLIBS+=-ldl 36 endif 37else 38 JACKLIBS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --libs jack` 39endif 40 41ifeq ($(shell $(PKG_CONFIG) --exists liblo && echo yes), yes) 42 JACKCFLAGS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --cflags liblo` -DHAVE_LIBLO 43 JACKLIBS+=`$(PKG_CONFIG) $(PKG_UI_FLAGS) --libs liblo` 44endif 45 46 47UITOOLKIT=$(WD)checkbutton.h $(WD)dial.h $(WD)label.h $(WD)pushbutton.h\ 48 $(WD)radiobutton.h $(WD)scale.h $(WD)separator.h $(WD)spinner.h \ 49 $(WD)xyplot.h $(WD)selector.h $(WD)multibutton.h \ 50 $(WD)image.h $(WD)drawingarea.h $(WD)checkimgbutton.h 51 52ROBGL= $(RW)robtk.mk $(UITOOLKIT) $(RW)ui_gl.c $(PUGL_SRC) \ 53 $(RW)gl/common_cgl.h $(RW)gl/layout.h $(RW)gl/robwidget_gl.h $(RW)robtk.h \ 54 $(RT)common.h $(RT)style.h \ 55 $(RW)gl/xternalui.c $(RW)gl/xternalui.h 56 57ROBGTK = $(RW)robtk.mk $(UITOOLKIT) $(RW)ui_gtk.c \ 58 $(RW)gtk2/common_cgtk.h $(RW)gtk2/robwidget_gtk.h $(RW)robtk.h \ 59 $(RT)common.h $(RT)style.h 60 61%UI_gtk.so %UI_gtk.dylib:: $(ROBGTK) 62 @mkdir -p $(@D) 63 $(CXX) $(CPPFLAGS) $(CFLAGS) $(GTKUICFLAGS) $(PTHREADCFLAGS) \ 64 -DPLUGIN_SOURCE="\"gui/$(*F).c\"" \ 65 -o $@ $(RW)ui_gtk.c \ 66 $(value $(*F)_UISRC) \ 67 -shared $(LV2LDFLAGS) $(LDFLAGS) $(GTKUILIBS) 68 $(STRIP) ${LIBSTRIPFLAGS} $@ 69 70%UI_gl.o:: $(ROBGL) 71 @mkdir -p $(@D) 72 $(CXX) -c $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) $(PTHREADCFLAGS) \ 73 -DUINQHACK="$(shell date +%s$$$$)" \ 74 -DPLUGIN_SOURCE="\"gui/$(*F).c\"" \ 75 -DRTK_DESCRIPTOR="$(value gl_$(subst -,_,$(*F))_LV2DESC)" \ 76 -o $@ $(RW)ui_gl.c 77 78%pugl.o:: $(ROBGL) 79 @mkdir -p $(@D) 80 $(CXX) -c $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) \ 81 -DUINQHACK="$(shell date +%s$$$$)" \ 82 -o $@ $(PUGL_SRC) 83 84%_glui.so %_glui.dylib %_glui.dll:: 85 @mkdir -p $(@D) 86 $(CXX) $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) $(PTHREADCFLAGS) \ 87 -o $@ gui/$(*F).c \ 88 $(GLGUIOBJ) \ 89 $(value $(*F)_UISRC) \ 90 -shared $(LV2LDFLAGS) $(LDFLAGS) $(GLUILIBS) 91 $(STRIP) ${LIBSTRIPFLAGS} $@ 92 93 94%UI_gl.so %UI_gl.dylib %UI_gl.dll:: $(ROBGL) 95 @mkdir -p $(@D) 96 $(CXX) $(CPPFLAGS) $(CFLAGS) $(GLUICFLAGS) $(PTHREADCFLAGS) \ 97 -DUINQHACK="$(shell date +%s$$$$)" \ 98 -DPLUGIN_SOURCE="\"gui/$(*F).c\"" \ 99 -o $@ $(RW)ui_gl.c \ 100 $(PUGL_SRC) \ 101 $(value $(*F)_UISRC) \ 102 -shared $(LV2LDFLAGS) $(LDFLAGS) $(GLUILIBS) 103 $(STRIP) ${LIBSTRIPFLAGS} $@ 104 105# ignore man-pages in rule below 106x42-%.1: 107 @/bin/true 108 109# windows icon 110.SUFFFIXES: .rc 111win_icon.rc.o: $(RW)win_icon.rc img/x42.ico 112 $(WINDRES) -o $@ $< 113 114x42-%.o:: $(ROBGL) 115 @mkdir -p $(@D) 116 $(CXX) $(CPPFLAGS) $(JACKCFLAGS) $(PTHREADCFLAGS) \ 117 -DXTERNAL_UI -DHAVE_IDLE_IFACE -DDEFAULT_NOT_ONTOP \ 118 -DRTK_DESCRIPTOR="$(value x42_$(subst -,_,$(*F))_JACKDESC)" \ 119 -DPLUGIN_SOURCE="\"$(value x42_$(subst -,_,$(*F))_JACKGUI)\"" \ 120 -o $@ \ 121 -c $(RW)ui_gl.c 122 123x42-%-collection x42-%-collection.exe:: $(ROBGL) $(RW)jackwrap.c $(OSXJACKWRAP) $(RW)weakjack/weak_libjack.def $(RW)weakjack/weak_libjack.h $(JACKEXTRA) 124 @mkdir -p $(@D) 125 $(CXX) $(CPPFLAGS) $(JACKCFLAGS) $(PTHREADCFLAGS) -DDEFAULT_NOT_ONTOP \ 126 -DXTERNAL_UI -DHAVE_IDLE_IFACE \ 127 -DJACK_DESCRIPT="\"$(value x42_$(subst -,_,$(*F))_collection_LV2HTTL)\"" \ 128 -DAPPNAME="\"$(*F)\"" \ 129 -o $@ \ 130 $(RW)jackwrap.c $(PUGL_SRC) $(OSXJACKWRAP) $(JACKEXTRA) \ 131 $(value x42_$(subst -,_,$(*F))_collection_JACKSRC) \ 132 $(LDFLAGS) $(JACKLIBS) 133 $(STRIP) ${APPSTRIPFLAGS} $@ 134 135x42-% x42-%.exe:: $(ROBGL) $(RW)jackwrap.c $(OSXJACKWRAP) $(RW)weakjack/weak_libjack.def $(RW)weakjack/weak_libjack.h $(JACKEXTRA) 136 @mkdir -p $(@D) 137 $(CXX) $(CPPFLAGS) $(JACKCFLAGS) $(PTHREADCFLAGS) -DDEFAULT_NOT_ONTOP \ 138 -DXTERNAL_UI -DHAVE_IDLE_IFACE \ 139 -DRTK_DESCRIPTOR="$(value x42_$(subst -,_,$(*F))_JACKDESC)" \ 140 -DPLUGIN_SOURCE="\"$(value x42_$(subst -,_,$(*F))_JACKGUI)\"" \ 141 -DJACK_DESCRIPT="\"$(value x42_$(subst -,_,$(*F))_LV2HTTL)\"" \ 142 -DAPPNAME="\"$(*F)\"" \ 143 -o $@ \ 144 $(RW)jackwrap.c $(RW)ui_gl.c $(PUGL_SRC) $(OSXJACKWRAP) $(JACKEXTRA) \ 145 $(value x42_$(subst -,_,$(*F))_JACKSRC) \ 146 $(LDFLAGS) $(JACKLIBS) 147 $(STRIP) ${APPSTRIPFLAGS} $@ 148