APP_DIR = build/PluginExpressionParser.app APP_CONTENTS_DIR = $(APP_DIR)/Contents APP_ARCH_EXEC_DIR = $(APP_CONTENTS_DIR)/MacOS APP_RESOURCES_DIR = $(APP_CONTENTS_DIR)/Resources EXECUTABLE = $(APP_ARCH_EXEC_DIR)/PluginExpressionParser OBJECT_FILES = main.o MyDocument.o PluginEvalAux.o BUILD_OBJECT_FILES = $(addprefix build/,$(OBJECT_FILES)) \ build/PluginEvalAux_stub.o HOST = $(shell uname) ifeq ($(HOST),Darwin) default: app else default: no_app endif app: $(APP_CONTENTS_DIR) $(APP_RESOURCES_DIR) $(EXECUTABLE) # $(EXECUTABLE): $(APP_ARCH_EXEC_DIR) $(BUILD_OBJECT_FILES) ghc \ -o "$(EXECUTABLE)" \ -framework Cocoa \ -package-conf ../../../plugins.conf.inplace \ -package plugins \ -no-hs-main \ $(BUILD_OBJECT_FILES) build/MyDocument.o: MyDocument.m MyDocument.h gcc -c -o "$@" -Wall -I`ghc --print-libdir`/include "$<" build/main.o: main.m gcc -c -o "$@" -Wall -I`ghc --print-libdir`/include "$<" build/PluginEvalAux.o: PluginEvalAux.hs ghc --make \ -package-conf ../../../plugins.conf.inplace \ -package plugins \ -odir build/ \ -hidir build/ \ "$<" # $(APP_DIR): mkdir -p "$@" $(APP_ARCH_EXEC_DIR): $(APP_DIR) mkdir -p "$@" $(APP_CONTENTS_DIR): $(APP_DIR) Info.plist mkdir -p "$(APP_CONTENTS_DIR)" cp Info.plist "$@" echo -n 'APPL????' > "$@"/PkgInfo $(APP_RESOURCES_DIR): $(APP_DIR) English.lproj mkdir -p "$(APP_RESOURCES_DIR)" cp -R English.lproj "$@" # clean: -rm -rf build *_stub.?