Advertisement
WolfieMario

windows.mk

Oct 18th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 2.19 KB | None | 0 0
  1. SHELL := /bin/bash
  2. CC := gcc #i486-mingw32-gcc
  3. CFLAGS := -Wall -Werror -std=c99 -g -s -Os -mwindows `pkg-config --cflags gtk+-2.0` -DGTK2
  4. LFLAGS := `pkg-config --libs gtk+-2.0` -lm -lz -mwindows -s
  5.  
  6. WINDRES := windres #i486-mingw32-windres
  7.  
  8. OBJ := obj/windows/
  9. BIN := bin/windows/
  10.  
  11. TARGET := $(BIN)ImageToMapX.exe
  12.  
  13. SRCDIRS := src src/* src/*/* src/*/*/*
  14. SOURCES := $(foreach DIR, $(SRCDIRS), $(wildcard $(DIR)/*.c))
  15. OBJECTS = $(patsubst %.c, $(OBJ)%.o, $(SOURCES))
  16.  
  17. BEG =   echo -e -n "  \033[32m$(1)$(2)...\033[0m" ; echo -n > "/tmp/.`whoami`-build-errors"
  18. END =   if [[ -s "/tmp/.`whoami`-build-errors" ]] ; then \
  19.         echo -e -n "\r\033[1;33m$(1)$(2)\033[0m\n"; \
  20.         cat "/tmp/.`whoami`-build-errors"; \
  21.     else \
  22.         echo -e -n "\r  \033[1;32m$(1)$(2)\033[0m\033[K\n"; \
  23.     fi
  24.  
  25. INFO = echo -e -n "\r  \033[1;34m$(1)$(2)\033[0m\n"
  26.  
  27. ERRORFUNC = echo -e " \033[1;31m! Fatal error encountered.\033[0m"; \
  28.     cat "/tmp/.`whoami`-build-errors"; \
  29.     exit 1;
  30.  
  31. ERRORS = 2>>"/tmp/.`whoami`-build-errors" || { $(call ERRORFUNC) }
  32.  
  33. ERRORSS = >>"/tmp/.`whoami`-build-errors" || { $(call ERRORFUNC) }
  34.  
  35. BEGRM = echo -e -n "  \033[31m$(1)$(2)...\033[0m" && echo -n > "/tmp/.`whoami`-build-errors"
  36. ENDRM = echo -e -n "\r  \033[1;31m$(1)$(2)\033[0m\033[K\n"
  37.  
  38.  
  39. .PHONY: all clean init
  40.  
  41. all: init  $(TARGET)
  42.     @$(call BEG, "CP", "win")
  43.     @cp -r win/* $(BIN)
  44.     @$(call END, "CP", "win")
  45.     @$(call BEG, "CP", "resources")
  46.     @cp -r resources/* $(BIN)
  47.     @$(call END, "CP", "resources")
  48.     @$(call INFO, "--", "Building ImageToMap-X for Windows...Done!");
  49.  
  50. init:
  51.     @$(call INFO, "--", "Building ImageToMap-X for Windows...");
  52.  
  53. $(OBJ)%.o: %.c
  54.     @$(call BEG, "CC", "$<")
  55.     @mkdir -p $(dir $@)
  56.     @$(CC) -c $< -o $@ $(CFLAGS) $(ERRORS)
  57.     @$(call END, "CC", "$<")
  58.  
  59. $(TARGET): $(OBJECTS) $(OBJ)imagetomap.res
  60.     @$(call BEG, "LD", "$<")
  61.     @mkdir -p $(dir $@)
  62.     @$(CC) $(OBJECTS) $(OBJ)imagetomap.res -o $(TARGET) $(LFLAGS) $(ERRORS)
  63.     @$(call END, "LD", "$<")
  64.  
  65. $(OBJ)imagetomap.res: imagetomap.rc
  66.     @$(call BEG, "WINDRES", "$<")
  67.     @mkdir -p $(dir $@)
  68.     @$(WINDRES) $< -O coff -o $@ $(ERRORS)
  69.     @$(call END, "WINDRES", "$<")
  70.  
  71. clean:
  72.     @$(call BEGRM, "RM", "$(BIN) $(OBJ)")
  73.     @$(RM) -rf $(BIN) $(OBJ)
  74.     @$(call ENDRM, "RM", "$(BIN) $(OBJ)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement