Finalizing build scripts
This commit is contained in:
parent
e9d67178da
commit
8348a857f3
@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
* Added `scan` builtin, which computes prefix sum of passed values when provided with addition operator
|
||||
* Added [rtmidi](https://github.com/thestk/rtmidi/) dependency which should provide multiplatform MIDI support
|
||||
* Support for Windows (with only basic REPL) (`make os=windows`)
|
||||
* Support for MacOS (`make os=macos`)
|
||||
* Release package now with compiled Windows binary
|
||||
* `:load` REPL command to load Musique files inside Musique session. Allows for delayed file execution after a connection
|
||||
* `:quit` REPL command that mirrors `:exit` command
|
||||
|
12
Makefile
12
Makefile
@ -3,13 +3,21 @@ include config.mk
|
||||
Sources := $(shell find musique/ -name '*.cc')
|
||||
Obj := $(subst musique/,,$(Sources:%.cc=%.o))
|
||||
|
||||
ifeq ($(os),windows)
|
||||
all: bin/musique.exe
|
||||
debug: bin/windows/debug/musique.exe
|
||||
else
|
||||
all: bin/musique
|
||||
debug: bin/$(os)/debug/musique
|
||||
endif
|
||||
|
||||
include scripts/$(os).mk
|
||||
include scripts/debug.mk
|
||||
include scripts/release.mk
|
||||
include scripts/build.mk
|
||||
include scripts/test.mk
|
||||
|
||||
bin/$(Target): bin/$(os)/$(Target)
|
||||
ln -f $< $@
|
||||
|
||||
# http://www.music.mcgill.ca/~gary/rtmidi/#compiling
|
||||
bin/$(os)/rtmidi.o: lib/rtmidi/RtMidi.cpp lib/rtmidi/RtMidi.h
|
||||
@echo "CXX $@"
|
||||
|
24
scripts/build.mk
Normal file
24
scripts/build.mk
Normal file
@ -0,0 +1,24 @@
|
||||
Release_Obj=$(addprefix bin/$(os)/,$(Obj))
|
||||
|
||||
bin/$(os)/bestline.o: lib/bestline/bestline.c lib/bestline/bestline.h
|
||||
@echo "CC $@"
|
||||
@$(CC) $< -c -O3 -o $@
|
||||
|
||||
bin/$(os)/%.o: musique/%.cc
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(RELEASE_FLAGS) $(CPPFLAGS) -o $@ $< -c
|
||||
|
||||
bin/$(os)/$(Target): $(Release_Obj) bin/$(os)/main.o bin/$(os)/rtmidi.o $(Bestline)
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(RELEASE_FLAGS) $(CPPFLAGS) -o $@ $(Release_Obj) bin/$(os)/rtmidi.o $(Bestline) $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
Debug_Obj=$(addprefix bin/$(os)/debug/,$(Obj))
|
||||
|
||||
bin/$(os)/debug/$(Target): $(Debug_Obj) bin/$(os)/debug/main.o bin/$(os)/rtmidi.o $(Bestline)
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(DEBUG_FLAGS) $(CPPFLAGS) -o $@ $(Debug_Obj) bin/$(os)/rtmidi.o $(Bestline) $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
bin/$(os)/debug/%.o: musique/%.cc
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(DEBUG_FLAGS) $(CPPFLAGS) -o $@ $< -c
|
||||
|
@ -1,11 +0,0 @@
|
||||
Debug_Obj=$(addprefix bin/debug/,$(Obj))
|
||||
|
||||
debug: bin/debug/musique
|
||||
|
||||
bin/debug/musique: $(Debug_Obj) bin/debug/main.o bin/bestline.o
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(DEBUG_FLAGS) $(CPPFLAGS) -o $@ $(Debug_Obj) bin/bestline.o $(LDFLAGS) $(LDLIBS)
|
||||
|
||||
bin/debug/%.o: musique/%.cc
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(DEBUG_FLAGS) $(CPPFLAGS) -o $@ $< -c
|
@ -3,3 +3,4 @@ CXX=g++
|
||||
CPPFLAGS:=$(CPPFLAGS) -D __LINUX_ALSA__
|
||||
LDLIBS:=-lasound $(LDLIBS) -static-libgcc -static-libstdc++
|
||||
Bestline=bin/$(os)/bestline.o
|
||||
Target=musique
|
||||
|
@ -4,4 +4,4 @@ CPPFLAGS:=$(CPPFLAGS) -D __MACOSX_CORE__
|
||||
LDLIBS:=-framework CoreMIDI -framework CoreAudio -framework CoreFoundation $(LDLIBS)
|
||||
Release_Obj=$(addprefix bin/,$(Obj))
|
||||
Bestline=bin/$(os)/bestline.o
|
||||
|
||||
Target=musique
|
||||
|
@ -16,10 +16,10 @@ fi
|
||||
|
||||
mkdir -p "$Target"
|
||||
|
||||
make clean && make bin/musique
|
||||
make clean && make os=linux
|
||||
cp bin/musique "$Target"/
|
||||
|
||||
make clean && make bin/musique os=windows
|
||||
make clean && make os=windows
|
||||
cp bin/musique.exe "$Target"/
|
||||
|
||||
echo "Copy examples, license and documentation"
|
||||
|
@ -1,13 +0,0 @@
|
||||
Release_Obj=$(addprefix bin/$(os)/,$(Obj))
|
||||
|
||||
bin/$(os)/bestline.o: lib/bestline/bestline.c lib/bestline/bestline.h
|
||||
@echo "CC $@"
|
||||
@$(CC) $< -c -O3 -o $@
|
||||
|
||||
bin/$(os)/%.o: musique/%.cc
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(RELEASE_FLAGS) $(CPPFLAGS) -o $@ $< -c
|
||||
|
||||
bin/musique: $(Release_Obj) bin/$(os)/main.o bin/$(os)/rtmidi.o $(Bestline)
|
||||
@echo "CXX $@"
|
||||
@$(CXX) $(CXXFLAGS) $(RELEASE_FLAGS) $(CPPFLAGS) -o $@ $(Release_Obj) bin/$(os)/rtmidi.o $(Bestline) $(LDFLAGS) $(LDLIBS)
|
@ -2,4 +2,4 @@ CC=i686-w64-mingw32-gcc
|
||||
CXX=i686-w64-mingw32-g++
|
||||
CPPFLAGS:=$(CPPFLAGS) -D__WINDOWS_MM__
|
||||
LDLIBS:=-lwinmm $(LDLIBS) -static-libgcc -static-libstdc++
|
||||
|
||||
Target=musique.exe
|
||||
|
Loading…
Reference in New Issue
Block a user