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 `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
|
* 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 Windows (with only basic REPL) (`make os=windows`)
|
||||||
|
* Support for MacOS (`make os=macos`)
|
||||||
* Release package now with compiled Windows binary
|
* 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
|
* `: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
|
* `:quit` REPL command that mirrors `:exit` command
|
||||||
|
12
Makefile
12
Makefile
@ -3,13 +3,21 @@ include config.mk
|
|||||||
Sources := $(shell find musique/ -name '*.cc')
|
Sources := $(shell find musique/ -name '*.cc')
|
||||||
Obj := $(subst musique/,,$(Sources:%.cc=%.o))
|
Obj := $(subst musique/,,$(Sources:%.cc=%.o))
|
||||||
|
|
||||||
|
ifeq ($(os),windows)
|
||||||
|
all: bin/musique.exe
|
||||||
|
debug: bin/windows/debug/musique.exe
|
||||||
|
else
|
||||||
all: bin/musique
|
all: bin/musique
|
||||||
|
debug: bin/$(os)/debug/musique
|
||||||
|
endif
|
||||||
|
|
||||||
include scripts/$(os).mk
|
include scripts/$(os).mk
|
||||||
include scripts/debug.mk
|
include scripts/build.mk
|
||||||
include scripts/release.mk
|
|
||||||
include scripts/test.mk
|
include scripts/test.mk
|
||||||
|
|
||||||
|
bin/$(Target): bin/$(os)/$(Target)
|
||||||
|
ln -f $< $@
|
||||||
|
|
||||||
# http://www.music.mcgill.ca/~gary/rtmidi/#compiling
|
# http://www.music.mcgill.ca/~gary/rtmidi/#compiling
|
||||||
bin/$(os)/rtmidi.o: lib/rtmidi/RtMidi.cpp lib/rtmidi/RtMidi.h
|
bin/$(os)/rtmidi.o: lib/rtmidi/RtMidi.cpp lib/rtmidi/RtMidi.h
|
||||||
@echo "CXX $@"
|
@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__
|
CPPFLAGS:=$(CPPFLAGS) -D __LINUX_ALSA__
|
||||||
LDLIBS:=-lasound $(LDLIBS) -static-libgcc -static-libstdc++
|
LDLIBS:=-lasound $(LDLIBS) -static-libgcc -static-libstdc++
|
||||||
Bestline=bin/$(os)/bestline.o
|
Bestline=bin/$(os)/bestline.o
|
||||||
|
Target=musique
|
||||||
|
@ -4,4 +4,4 @@ CPPFLAGS:=$(CPPFLAGS) -D __MACOSX_CORE__
|
|||||||
LDLIBS:=-framework CoreMIDI -framework CoreAudio -framework CoreFoundation $(LDLIBS)
|
LDLIBS:=-framework CoreMIDI -framework CoreAudio -framework CoreFoundation $(LDLIBS)
|
||||||
Release_Obj=$(addprefix bin/,$(Obj))
|
Release_Obj=$(addprefix bin/,$(Obj))
|
||||||
Bestline=bin/$(os)/bestline.o
|
Bestline=bin/$(os)/bestline.o
|
||||||
|
Target=musique
|
||||||
|
@ -16,10 +16,10 @@ fi
|
|||||||
|
|
||||||
mkdir -p "$Target"
|
mkdir -p "$Target"
|
||||||
|
|
||||||
make clean && make bin/musique
|
make clean && make os=linux
|
||||||
cp bin/musique "$Target"/
|
cp bin/musique "$Target"/
|
||||||
|
|
||||||
make clean && make bin/musique os=windows
|
make clean && make os=windows
|
||||||
cp bin/musique.exe "$Target"/
|
cp bin/musique.exe "$Target"/
|
||||||
|
|
||||||
echo "Copy examples, license and documentation"
|
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++
|
CXX=i686-w64-mingw32-g++
|
||||||
CPPFLAGS:=$(CPPFLAGS) -D__WINDOWS_MM__
|
CPPFLAGS:=$(CPPFLAGS) -D__WINDOWS_MM__
|
||||||
LDLIBS:=-lwinmm $(LDLIBS) -static-libgcc -static-libstdc++
|
LDLIBS:=-lwinmm $(LDLIBS) -static-libgcc -static-libstdc++
|
||||||
|
Target=musique.exe
|
||||||
|
Loading…
Reference in New Issue
Block a user