Makefile
author Tony Garnock-Jones <tonyg@lshift.net>
Fri Jul 09 06:36:57 2010 +0100 (22 months ago)
changeset 8 8a994f1f3b1d
parent 2 f6f10500539c
permissions -rw-r--r--
Added tag moved_to_github for changeset 8ee5b3ef21ee
tonyg@4
     1
SOURCE_DIR=src
tonyg@4
     2
EBIN_DIR=ebin
tonyg@4
     3
INCLUDE_DIR=include
tonyg@4
     4
INCLUDES=$(wildcard $(INCLUDE_DIR)/*.hrl)
tonyg@4
     5
SOURCES=$(wildcard $(SOURCE_DIR)/*.erl)
tonyg@4
     6
TARGETS=$(patsubst $(SOURCE_DIR)/%.erl, $(EBIN_DIR)/%.beam,$(SOURCES))
tonyg@4
     7
APPFILES=$(patsubst $(SOURCE_DIR)/%.app, $(EBIN_DIR)/%.app, $(wildcard $(SOURCE_DIR)/*.app))
tonyg@4
     8
ERLC_OPTS=-I $(INCLUDE_DIR) -o $(EBIN_DIR) -Wall +debug_info # +native -v
tonyg@4
     9
DIST_DIR=dist
tonyg@4
    10
SIGNING_KEY_ID=E96F1FA7
tonyg@0
    11
tonyg@4
    12
all: $(EBIN_DIR) $(TARGETS) $(APPFILES)
tonyg@0
    13
tonyg@4
    14
$(EBIN_DIR)/%.beam: $(SOURCE_DIR)/%.erl $(INCLUDES)
tonyg@4
    15
	erlc $(ERLC_OPTS) $<
tonyg@4
    16
tonyg@4
    17
$(EBIN_DIR)/%.app: $(SOURCE_DIR)/%.app
tonyg@4
    18
	cp $< $@
tonyg@4
    19
tonyg@4
    20
$(EBIN_DIR):
tonyg@4
    21
	mkdir -p $@
tonyg@4
    22
tonyg@4
    23
clean:
tonyg@4
    24
	rm -rf $(EBIN_DIR)
tonyg@4
    25
tonyg@4
    26
dist: all
tonyg@4
    27
	mkdir -p $(DIST_DIR)
tonyg@4
    28
	cp -r ebin src $(DIST_DIR)
tonyg@0
    29
tonyg@0
    30
distclean: clean
tonyg@0
    31
	rm -rf $(DIST_DIR)
tonyg@4
    32
	find . -name '*~' -exec rm {} \;
tonyg@0
    33
tonyg@0
    34
debian-package: clean
tonyg@0
    35
	tar -cf debian-package.tar .
tonyg@0
    36
	mkdir build
tonyg@0
    37
	cd build; tar -xf ../debian-package.tar
tonyg@0
    38
	cd build; dpkg-buildpackage -rfakeroot -k$(SIGNING_KEY_ID)
tonyg@0
    39
	rm -rf build debian-package.tar
tonyg@0
    40
tonyg@4
    41
test-compile: $(EBIN_DIR)
tonyg@4
    42
	erlc $(ERLC_OPTS) $(wildcard test/*.erl)
tonyg@4
    43
	cp test/*.app $(EBIN_DIR)
tonyg@4
    44
tonyg@4
    45
RUN_ERL_CMD=erl -pa ebin -s smtp_server_test -s pop3_server_test
tonyg@4
    46
tonyg@4
    47
run: all test-compile
tonyg@4
    48
	$(RUN_ERL_CMD)
tonyg@4
    49
tonyg@4
    50
run_root: all test-compile
tonyg@4
    51
	sudo $(RUN_ERL_CMD) -smtp_server_test listen_port 25 -pop3_server_test listen_port 110