# chugin nameCHUGIN_NAME=Faust# all of the c/cpp files that compose this chuginC_MODULES=CXX_MODULES=Faust.cpp# where the chuck headers areCK_SRC_PATH?=../chuck/include# ---------------------------------------------------------------------------- ## you won't generally need to change anything below this line for a new chugin ## ---------------------------------------------------------------------------- ## default target: print usage message and quitcurrent: @echo "[chuck build]: please use one of the following configurations:" @echo " make linux, make osx, or make win32 (for Windows compilation, we recommend using the Visual Studio project)" @echo "Options:" @echo " MAX_INPUTS: the maximum number of inputs of the chugin" @echo " MAX_OUTPUTS: the maximum number of outputs of the chugin" @echo "Example:" @echo " make linux MAX_INPUTS=1 MAX_OUTPUTS=4"help: currentifneq ($(CK_TARGET),).DEFAULT_GOAL:=$(CK_TARGET)ifeq ($(MAKECMDGOALS),)MAKECMDGOALS:=$(.DEFAULT_GOAL)endifendif.PHONY: osx linux linux-oss linux-jack linux-alsa win32osx linux linux-oss linux-jack linux-alsa: allwin32: make -f makefile.win32CC?=gccCXX?=g++LD=$(CXX)CHUGIN_PATH=/usr/local/lib/chuckifneq (,$(strip $(filter osx bin-dist-osx,$(MAKECMDGOALS))))include makefile.osxendififneq (,$(strip $(filter linux,$(MAKECMDGOALS))))include makefile.linuxendififneq (,$(strip $(filter linux-oss,$(MAKECMDGOALS))))include makefile.linuxendififneq (,$(strip $(filter linux-jack,$(MAKECMDGOALS))))include makefile.linuxendififneq (,$(strip $(filter linux-alsa,$(MAKECMDGOALS))))include makefile.linuxendififneq ($(CHUCK_DEBUG),)FLAGS+= -gelseFLAGS+= -O3endififneq ($(CHUCK_STRICT),)FLAGS+= -Werrorendififneq ($(MAX_INPUTS),)INS=-DMAX_INPUTS=$(MAX_INPUTS)endififneq ($(MAX_OUTPUTS),)OUTS=-DMAX_OUTPUTS=$(MAX_OUTPUTS)endif# default: build a dynamic chuginCK_CHUGIN_STATIC?=0ifeq ($(CK_CHUGIN_STATIC),0)SUFFIX=.chugelseSUFFIX=.schugFLAGS+= -D__CK_DLL_STATIC__endifC_OBJECTS=$(addsuffix .o,$(basename $(C_MODULES)))CXX_OBJECTS=$(addsuffix .o,$(basename $(CXX_MODULES)))CHUG=$(addsuffix $(SUFFIX),$(CHUGIN_NAME))all: $(CHUG)$(CHUG): $(C_OBJECTS) $(CXX_OBJECTS)ifeq ($(CK_CHUGIN_STATIC),0) $(LD) -o $@ $^ $(LDFLAGS)else ar rv $@ $^ ranlib $@endif$(C_OBJECTS): %.o: %.c $(CC) -c -o $@ $< $(FLAGS) $(CXX_OBJECTS): %.o: %.cpp $(CK_SRC_PATH)/chuck_dl.h $(CXX) $(INS) $(OUTS) -c -o $@ $< $(FLAGS) install: $(CHUG) mkdir -p $(CHUGIN_PATH) cp $^ $(CHUGIN_PATH) chmod 755 $(CHUGIN_PATH)/$(CHUG)clean: rm -rf $(C_OBJECTS) $(CXX_OBJECTS) $(CHUG) Release Debug
# chugin name
CHUGIN_NAME=Faust
# all of the c/cpp files that compose this chugin
C_MODULES=
CXX_MODULES=Faust.cpp
# where the chuck headers are
CK_SRC_PATH?=../chuck/include
# ---------------------------------------------------------------------------- #
# you won't generally need to change anything below this line for a new chugin #
# ---------------------------------------------------------------------------- #
# default target: print usage message and quit
current:
@echo "[chuck build]: please use one of the following configurations:"
@echo " make linux, make osx, or make win32 (for Windows compilation, we recommend using the Visual Studio project)"
@echo "Options:"
@echo " MAX_INPUTS: the maximum number of inputs of the chugin"
@echo " MAX_OUTPUTS: the maximum number of outputs of the chugin"
@echo "Example:"
@echo " make linux MAX_INPUTS=1 MAX_OUTPUTS=4"
help: current
ifneq ($(CK_TARGET),)
.DEFAULT_GOAL:=$(CK_TARGET)
ifeq ($(MAKECMDGOALS),)
MAKECMDGOALS:=$(.DEFAULT_GOAL)
endif
endif
.PHONY: osx linux linux-oss linux-jack linux-alsa win32
osx linux linux-oss linux-jack linux-alsa: all
win32:
make -f makefile.win32
CC?=gcc
CXX?=g++
LD=$(CXX)
CHUGIN_PATH=/usr/local/lib/chuck
ifneq (,$(strip $(filter osx bin-dist-osx,$(MAKECMDGOALS))))
include makefile.osx
endif
ifneq (,$(strip $(filter linux,$(MAKECMDGOALS))))
include makefile.linux
endif
ifneq (,$(strip $(filter linux-oss,$(MAKECMDGOALS))))
include makefile.linux
endif
ifneq (,$(strip $(filter linux-jack,$(MAKECMDGOALS))))
include makefile.linux
endif
ifneq (,$(strip $(filter linux-alsa,$(MAKECMDGOALS))))
include makefile.linux
endif
ifneq ($(CHUCK_DEBUG),)
FLAGS+= -g
else
FLAGS+= -O3
endif
ifneq ($(CHUCK_STRICT),)
FLAGS+= -Werror
endif
ifneq ($(MAX_INPUTS),)
INS=-DMAX_INPUTS=$(MAX_INPUTS)
endif
ifneq ($(MAX_OUTPUTS),)
OUTS=-DMAX_OUTPUTS=$(MAX_OUTPUTS)
endif
# default: build a dynamic chugin
CK_CHUGIN_STATIC?=0
ifeq ($(CK_CHUGIN_STATIC),0)
SUFFIX=.chug
else
SUFFIX=.schug
FLAGS+= -D__CK_DLL_STATIC__
endif
C_OBJECTS=$(addsuffix .o,$(basename $(C_MODULES)))
CXX_OBJECTS=$(addsuffix .o,$(basename $(CXX_MODULES)))
CHUG=$(addsuffix $(SUFFIX),$(CHUGIN_NAME))
all: $(CHUG)
$(CHUG): $(C_OBJECTS) $(CXX_OBJECTS)
ifeq ($(CK_CHUGIN_STATIC),0)
$(LD) -o $@ $^ $(LDFLAGS)
else
ar rv $@ $^
ranlib $@
endif
$(C_OBJECTS): %.o: %.c
$(CC) -c -o $@ $< $(FLAGS)
$(CXX_OBJECTS): %.o: %.cpp $(CK_SRC_PATH)/chuck_dl.h
$(CXX) $(INS) $(OUTS) -c -o $@ $< $(FLAGS)
install: $(CHUG)
mkdir -p $(CHUGIN_PATH)
cp $^ $(CHUGIN_PATH)
chmod 755 $(CHUGIN_PATH)/$(CHUG)
clean:
rm -rf $(C_OBJECTS) $(CXX_OBJECTS) $(CHUG) Release Debug