aboutsummaryrefslogtreecommitdiffhomepage
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile17
1 files changed, 15 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 75c9d0d..bda7bb1 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,8 @@ midimonster: LDLIBS = -ldl
# Replace version string with current git-describe if possible
ifneq "$(GITVERSION)" ""
midimonster: CFLAGS += -DMIDIMONSTER_VERSION=\"$(GITVERSION)\"
+midimonster.exe: CFLAGS += -DMIDIMONSTER_VERSION=\"$(GITVERSION)\"
+resource.o: RCCFLAGS += -DMIDIMONSTER_VERSION=\\\"$(GITVERSION)\\\"
endif
# Work around strange linker passing convention differences in Linux and OSX
@@ -53,17 +55,25 @@ backends-full:
midimonster: midimonster.c portability.h $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $< $(OBJS) $(LDLIBS) -o $@
+resource.o: midimonster.rc midimonster.ico
+ $(RCC) $(RCCFLAGS) $< -o $@ --output-format=coff
+
+midimonster.ico: MIDIMonster.svg
+ convert -density 384 $< -define icon:auto-resize $@
+
midimonster.exe: export CC = x86_64-w64-mingw32-gcc
+midimonster.exe: RCC ?= x86_64-w64-mingw32-windres
midimonster.exe: CFLAGS += -Wno-format
midimonster.exe: LDLIBS = -lws2_32
midimonster.exe: LDFLAGS += -Wl,--out-implib,libmmapi.a
-midimonster.exe: midimonster.c portability.h $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) $< $(OBJS) $(LDLIBS) -o $@
+midimonster.exe: midimonster.c portability.h $(OBJS) resource.o
+ $(CC) $(CFLAGS) $(LDFLAGS) $< $(OBJS) resource.o $(LDLIBS) -o $@
clean:
$(RM) midimonster
$(RM) midimonster.exe
$(RM) libmmapi.a
+ $(RM) resource.o
$(RM) $(OBJS)
$(MAKE) -C backends clean
@@ -78,8 +88,11 @@ install:
install -d "$(DESTDIR)$(EXAMPLES)"
install -m 0644 configs/* "$(DESTDIR)$(EXAMPLES)"
ifdef DEFAULT_CFG
+# Only install the default configuration if it is not already present to avoid overwriting it
+ifeq (,$(wildcard $(DEFAULT_CFG)))
install -Dm 0644 monster.cfg "$(DESTDIR)$(DEFAULT_CFG)"
endif
+endif
sanitize: export CC = clang
sanitize: export CFLAGS += -g -Wall -Wpedantic -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer