| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 1 | # $Id: Makefile,v 1.3 2004/08/13 16:35:59 mlogan Exp $ | 
 | 2 | # | 
 | 3 | include ../build/otp.mk | 
 | 4 | include ../build/colors.mk | 
 | 5 | include ../build/buildtargets.mk | 
 | 6 |  | 
 | 7 | # ---------------------------------------------------- | 
 | 8 | # Application version | 
 | 9 | # ---------------------------------------------------- | 
 | 10 |  | 
 | 11 | include ../vsn.mk | 
 | 12 | APP_NAME=thrift | 
 | 13 | PFX=thrift | 
 | 14 | VSN=$(THRIFT_VSN) | 
 | 15 |  | 
 | 16 | # ---------------------------------------------------- | 
 | 17 | # Install directory specification | 
 | 18 | # WARNING: INSTALL_DIR the command to install a directory. | 
 | 19 | #          INSTALL_DST is the target directory | 
 | 20 | # ---------------------------------------------------- | 
 | 21 | INSTALL_DST = $(ERLANG_OTP)/lib/$(APP_NAME)-$(VSN) | 
 | 22 |  | 
 | 23 | # ---------------------------------------------------- | 
 | 24 | # Target Specs | 
 | 25 | # ---------------------------------------------------- | 
 | 26 |  | 
 | 27 |  | 
| David Reiss | 080991b | 2008-10-30 04:28:42 +0000 | [diff] [blame] | 28 | MODULES = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl//') | 
 | 29 | MODULES_STRING_LIST = $(shell find . -name \*.erl | sed 's:^\./:":' | sed 's/\.erl/",/') | 
| Bryan Duxbury | d3879f8 | 2010-08-19 05:06:02 +0000 | [diff] [blame^] | 30 | BEHAV_MODULES = $(shell find . -name \*.erl | xargs grep -l behaviour_info | sed 's:^\./::' | sed 's/\.erl//') | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 31 |  | 
 | 32 | HRL_FILES= | 
 | 33 | INTERNAL_HRL_FILES= $(APP_NAME).hrl | 
 | 34 | ERL_FILES= $(MODULES:%=%.erl) | 
 | 35 | DOC_FILES=$(ERL_FILES) | 
 | 36 |  | 
 | 37 | APP_FILE= $(APP_NAME).app | 
 | 38 | APPUP_FILE= $(APP_NAME).appup | 
 | 39 |  | 
 | 40 | APP_SRC= $(APP_FILE).src | 
 | 41 | APPUP_SRC= $(APPUP_FILE).src | 
 | 42 |  | 
 | 43 | APP_TARGET= $(EBIN)/$(APP_FILE) | 
 | 44 | APPUP_TARGET= $(EBIN)/$(APPUP_FILE) | 
 | 45 |  | 
 | 46 | BEAMS= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) | 
| Bryan Duxbury | d3879f8 | 2010-08-19 05:06:02 +0000 | [diff] [blame^] | 47 | BEHAV_BEAMS= $(BEHAV_MODULES:%=$(EBIN)/%.$(EMULATOR)) | 
 | 48 | TARGET_FILES= $(BEHAV_BEAMS) $(BEAMS) $(APP_TARGET) $(APPUP_TARGET) | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 49 |  | 
 | 50 | WEB_TARGET=/var/yaws/www/$(APP_NAME) | 
 | 51 |  | 
 | 52 | # ---------------------------------------------------- | 
 | 53 | # FLAGS | 
 | 54 | # ---------------------------------------------------- | 
 | 55 |  | 
 | 56 | ERL_FLAGS += | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 57 | ERL_INCLUDE = -I../include -I../../fslib/include -I../../system_status/include | 
| Bryan Duxbury | d3879f8 | 2010-08-19 05:06:02 +0000 | [diff] [blame^] | 58 | ERL_BEHAV_PATH = -pz ../ebin | 
 | 59 | ERL_COMPILE_FLAGS += $(ERL_INCLUDE) $(ERL_BEHAV_PATH) | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 60 |  | 
 | 61 | # ---------------------------------------------------- | 
 | 62 | # Targets | 
 | 63 | # ---------------------------------------------------- | 
 | 64 |  | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 65 | all debug opt: $(EBIN) $(TARGET_FILES) | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 66 |  | 
 | 67 | #$(EBIN)/rm_logger.beam: $(APP_NAME).hrl | 
 | 68 | include ../build/docs.mk | 
 | 69 |  | 
 | 70 | # Note: In the open-source build clean must not destroy the preloaded | 
 | 71 | # beam files. | 
 | 72 | clean: | 
 | 73 | 	rm -f $(TARGET_FILES) | 
 | 74 | 	rm -f *~ | 
 | 75 | 	rm -f core | 
 | 76 | 	rm -rf $(EBIN) | 
 | 77 | 	rm -rf *html | 
 | 78 |  | 
 | 79 | $(EBIN): | 
 | 80 | 	mkdir $(EBIN) | 
 | 81 |  | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 82 | dialyzer: $(TARGET_FILES) | 
 | 83 | 	dialyzer --src -r . $(ERL_INCLUDE) | 
 | 84 |  | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 85 | # ---------------------------------------------------- | 
 | 86 | # Special Build Targets | 
 | 87 | # ---------------------------------------------------- | 
 | 88 |  | 
 | 89 | $(APP_TARGET): $(APP_SRC) ../vsn.mk $(BEAMS) | 
 | 90 | 	sed -e 's;%VSN%;$(VSN);' \ | 
 | 91 | 		-e 's;%PFX%;$(PFX);' \ | 
 | 92 | 		-e 's;%APP_NAME%;$(APP_NAME);' \ | 
 | 93 | 		-e 's;%MODULES%;%MODULES%$(MODULES_STRING_LIST);' \ | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 94 | 		$< > $<".tmp" | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 95 | 	sed -e 's/%MODULES%\(.*\),/\1/' \ | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 96 | 		$<".tmp" > $@ | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 97 | 	rm $<".tmp" | 
 | 98 |  | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 99 | $(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk | 
 | 100 | 	sed -e 's;%VSN%;$(VSN);' $< > $@ | 
 | 101 |  | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 102 | $(WEB_TARGET): ../markup/* | 
 | 103 | 	rm -rf $(WEB_TARGET) | 
 | 104 | 	mkdir $(WEB_TARGET) | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 105 | 	cp -r ../markup/ $(WEB_TARGET) | 
 | 106 | 	cp -r ../skins/ $(WEB_TARGET) | 
 | 107 |  | 
 | 108 | # ---------------------------------------------------- | 
 | 109 | # Install Target | 
| David Reiss | 6563f34 | 2008-06-11 00:58:55 +0000 | [diff] [blame] | 110 | # ---------------------------------------------------- | 
| David Reiss | ae756f4 | 2008-06-10 22:57:11 +0000 | [diff] [blame] | 111 |  | 
 | 112 | install: all $(WEB_TARGET) | 
 | 113 | #	$(INSTALL_DIR) $(INSTALL_DST)/src | 
 | 114 | #	$(INSTALL_DATA) $(ERL_FILES) $(INSTALL_DST)/src | 
 | 115 | #	$(INSTALL_DATA) $(INTERNAL_HRL_FILES) $(INSTALL_DST)/src | 
 | 116 | #	$(INSTALL_DIR) $(INSTALL_DST)/include | 
 | 117 | #	$(INSTALL_DATA) $(HRL_FILES) $(INSTALL_DST)/include | 
 | 118 | #	$(INSTALL_DIR) $(INSTALL_DST)/ebin | 
 | 119 | #	$(INSTALL_DATA) $(TARGET_FILES) $(INSTALL_DST)/ebin |