Subversion Repositories SmartDukaan

Rev

Rev 30 | Blame | Compare with Previous | Last modification | View Log | RSS feed

# $Id: Makefile,v 1.3 2004/08/13 16:35:59 mlogan Exp $
#
include ../build/otp.mk
include ../build/colors.mk
include ../build/buildtargets.mk

# ----------------------------------------------------
# Application version
# ----------------------------------------------------

include ../vsn.mk
APP_NAME=thrift
PFX=thrift
VSN=$(THRIFT_VSN)

# ----------------------------------------------------
# Install directory specification
# WARNING: INSTALL_DIR the command to install a directory.
#          INSTALL_DST is the target directory
# ----------------------------------------------------
INSTALL_DST = $(ERLANG_OTP)/lib/$(APP_NAME)-$(VSN)

# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------


MODULES = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl//')
MODULES_STRING_LIST = $(shell find . -name \*.erl | sed 's:^\./:":' | sed 's/\.erl/",/')

HRL_FILES=
INTERNAL_HRL_FILES= $(APP_NAME).hrl
ERL_FILES= $(MODULES:%=%.erl)
DOC_FILES=$(ERL_FILES)

APP_FILE= $(APP_NAME).app
APPUP_FILE= $(APP_NAME).appup

APP_SRC= $(APP_FILE).src
APPUP_SRC= $(APPUP_FILE).src

APP_TARGET= $(EBIN)/$(APP_FILE)
APPUP_TARGET= $(EBIN)/$(APPUP_FILE)

BEAMS= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
TARGET_FILES= $(BEAMS) $(APP_TARGET) $(APPUP_TARGET)

WEB_TARGET=/var/yaws/www/$(APP_NAME)

# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------

ERL_FLAGS +=
ERL_INCLUDE = -I../include -I../../fslib/include -I../../system_status/include
ERL_COMPILE_FLAGS += $(ERL_INCLUDE)

# ----------------------------------------------------
# Targets
# ----------------------------------------------------

all debug opt: $(EBIN) $(TARGET_FILES)

#$(EBIN)/rm_logger.beam: $(APP_NAME).hrl
include ../build/docs.mk

# Note: In the open-source build clean must not destroy the preloaded
# beam files.
clean:
        rm -f $(TARGET_FILES)
        rm -f *~
        rm -f core
        rm -rf $(EBIN)
        rm -rf *html

$(EBIN):
        mkdir $(EBIN)

dialyzer: $(TARGET_FILES)
        dialyzer --src -r . $(ERL_INCLUDE)

# ----------------------------------------------------
# Special Build Targets
# ----------------------------------------------------

$(APP_TARGET): $(APP_SRC) ../vsn.mk $(BEAMS)
        sed -e 's;%VSN%;$(VSN);' \
                -e 's;%PFX%;$(PFX);' \
                -e 's;%APP_NAME%;$(APP_NAME);' \
                -e 's;%MODULES%;%MODULES%$(MODULES_STRING_LIST);' \
                $< > $<".tmp"
        sed -e 's/%MODULES%\(.*\),/\1/' \
                $<".tmp" > $@
        rm $<".tmp"

$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk
        sed -e 's;%VSN%;$(VSN);' $< > $@

$(WEB_TARGET): ../markup/*
        rm -rf $(WEB_TARGET)
        mkdir $(WEB_TARGET)
        cp -r ../markup/ $(WEB_TARGET)
        cp -r ../skins/ $(WEB_TARGET)

# ----------------------------------------------------
# Install Target
# ----------------------------------------------------

install: all $(WEB_TARGET)
#       $(INSTALL_DIR) $(INSTALL_DST)/src
#       $(INSTALL_DATA) $(ERL_FILES) $(INSTALL_DST)/src
#       $(INSTALL_DATA) $(INTERNAL_HRL_FILES) $(INSTALL_DST)/src
#       $(INSTALL_DIR) $(INSTALL_DST)/include
#       $(INSTALL_DATA) $(HRL_FILES) $(INSTALL_DST)/include
#       $(INSTALL_DIR) $(INSTALL_DST)/ebin
#       $(INSTALL_DATA) $(TARGET_FILES) $(INSTALL_DST)/ebin