aboutsummaryrefslogblamecommitdiffstats
path: root/lib/diameter/src/compiler/Makefile
blob: 8512eb515aa67b7d431c0193e779426b897c80a7 (plain) (tree)












































































































































                                                                             
#
# %CopyrightBegin%
#
# Copyright Ericsson AB 2010-2011. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
#
# %CopyrightEnd%
#
#

ifneq ($(ERL_TOP),)
include $(ERL_TOP)/make/target.mk
EBIN = ../../ebin
include $(ERL_TOP)/make/$(TARGET)/otp.mk
else
include $(DIAMETER_TOP)/make/target.mk
EBIN = ../../ebin
include $(DIAMETER_TOP)/make/$(TARGET)/rules.mk
endif


# ----------------------------------------------------
# Application version
# ----------------------------------------------------
include ../../vsn.mk
VSN=$(DIAMETER_VSN)

# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------

RELSYSDIR = $(RELEASE_PATH)/lib/diameter-$(VSN)

INCDIR = ../../include

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

include modules.mk

ERL_FILES = \
	$(MODULES:%=%.erl)

TARGET_FILES = \
	$(MODULES:%=$(EBIN)/%.$(EMULATOR))

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

ifeq ($(TYPE),debug)
ERL_COMPILE_FLAGS += -Ddebug
endif

include ../app/diameter.mk

ERL_COMPILE_FLAGS += \
	$(DIAMETER_ERL_COMPILE_FLAGS) \
	-I$(INCDIR)

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

debug:
	@${MAKE} TYPE=debug opt

opt: $(TARGET_FILES)

clean:
	rm -f $(TARGET_FILES) 
	rm -f errs core *~
	rm -f depend.mk

docs:

info:
	@echo ""
	@echo "ERL_FILES = $(ERL_FILES)"
	@echo "HRL_FILES = $(HRL_FILES)"
	@echo ""
	@echo "TARGET_FILES = $(TARGET_FILES)"
	@echo ""

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

# Invoked from ../app to add modules to the app file.
$(APP_TARGET): force
	M=`echo $(MODULES) | sed -e 's/^ *//' -e 's/ *$$//' -e 'y/ /,/'`; \
	echo "/%COMPILER_MODULES%/s//$$M/;w;q" | tr ';' '\n' \
	| ed -s $@

# ----------------------------------------------------
# Release Target
# ----------------------------------------------------
ifneq ($(ERL_TOP),)
include $(ERL_TOP)/make/otp_release_targets.mk
else
include $(DIAMETER_TOP)/make/release_targets.mk
endif

release_spec: opt
	$(INSTALL_DIR)  $(RELSYSDIR)/ebin
	$(INSTALL_DATA) $(TARGET_FILES) $(RELSYSDIR)/ebin
	$(INSTALL_DIR)  $(RELSYSDIR)/src
	$(INSTALL_DIR)  $(RELSYSDIR)/src/compiler
	$(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(RELSYSDIR)/src/compiler

release_docs_spec:

force:

# ----------------------------------------------------
# Dependencies
# ----------------------------------------------------

depend: depend.mk

# Generate dependencies makefile.
depend.mk: ../app/depend.sed $(ERL_FILES) modules.mk Makefile
	for f in $(MODULES); do \
	    sed -f $< $$f.erl | sed "s@/@/$$f@"; \
	done \
	> $@

-include depend.mk

.PHONY: clean debug depend docs force info opt release_docs_spec release_spec