#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1996-2012. 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%
#
include $(ERL_TOP)/make/target.mk
ERTS_LIB_TYPEMARKER=.$(TYPE)
USING_MINGW=@MIXED_CYGWIN_MINGW@
USING_VC=@MIXED_VC@
ifeq ($(TYPE),debug)
PURIFY =
TYPEMARKER = .debug
TYPE_FLAGS = -DDEBUG @DEBUG_FLAGS@
else
ifeq ($(TYPE),purify)
PURIFY = purify
TYPEMARKER =
ifeq ($(findstring ose,$(TARGET)),ose)
TYPE_FLAGS = -g -XO -DPURIFY
else
TYPE_FLAGS = -g -O2 -DPURIFY
endif
else
override TYPE=opt
PURIFY =
TYPEMARKER =
ERTS_LIB_TYPEMARKER=
TYPE_FLAGS =
endif
endif
include $(ERL_TOP)/make/$(TARGET)/otp.mk
include ../../vsn.mk
ERTS_INCL = -I$(ERL_TOP)/erts/include \
-I$(ERL_TOP)/erts/include/$(TARGET) \
-I$(ERL_TOP)/erts/include/internal \
-I$(ERL_TOP)/erts/include/internal/$(TARGET)
CC = @CC@
WFLAGS = @WFLAGS@
CFLAGS = @CFLAGS@ @DEFS@ $(TYPE_FLAGS) @WFLAGS@ -I$(SYSDIR) -I$(EMUDIR) \
$(ERTS_INCL) -DOTP_SYSTEM_VERSION=\"$(SYSTEM_VSN)\"
LD = @LD@
LIBS = @LIBS@
LDFLAGS = @LDFLAGS@
ifeq ($(TARGET),win32)
ifeq ($(TYPE),debug)
CFLAGS = $(subst -O2,-g,@CFLAGS@ @DEFS@ $(TYPE_FLAGS) @WFLAGS@ -I$(SYSDIR) \
-I$(EMUDIR) $(ERTS_INCL) -DOTP_SYSTEM_VERSION=\"$(SYSTEM_VSN)\")
LDFLAGS += -g
endif
endif
BINDIR = $(ERL_TOP)/bin/$(TARGET)
OBJDIR = $(ERL_TOP)/erts/obj$(TYPEMARKER)/$(TARGET)
EMUDIR = $(ERL_TOP)/erts/emulator/beam
EMUOSDIR = $(ERL_TOP)/erts/emulator/@ERLANG_OSTYPE@
SYSDIR = $(ERL_TOP)/erts/emulator/sys/@ERLANG_OSTYPE@
DRVDIR = $(ERL_TOP)/erts/emulator/drivers/@ERLANG_OSTYPE@
VXETC = ../vxworks
UXETC = ../unix
OSEETC = ../ose
WINETC = ../win32
ifeq ($(findstring vxworks,$(TARGET)), vxworks)
ERLEXEC = erl.exec
else
ifeq ($(findstring ose,$(TARGET)), ose)
ERLEXEC =
TAR = @TAR@
else
ifeq ($(TARGET), win32)
ERLEXEC = erlexec.dll
else
ERLEXEC = erlexec
endif
endif
endif
# On windows we always need reentrant libraries.
ifeq ($(TARGET),win32)
ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal_r$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@
else
ERTS_INTERNAL_LIBS=-L../../lib/internal/$(TARGET) -lerts_internal$(ERTS_LIB_TYPEMARKER) @ERTS_INTERNAL_X_LIBS@ -lm
endif
ERTS_LIB = $(ERL_TOP)/erts/lib_src/obj/$(TARGET)/$(TYPE)/MADE
# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------
ifeq ($(findstring vxworks,$(TARGET)), vxworks)
INSTALL_EMBEDDED_PROGS = $(BINDIR)/erl_io $(BINDIR)/rdate $(BINDIR)/vxcall
INSTALL_EMBEDDED_DATA = $(BINDIR)/erl_script.sam $(VXETC)/resolv.conf
INSTALL_INCLUDES = $(VXETC)/reclaim.h
INSTALL_TOP = $(VXETC)/README.VxWorks
INSTALL_MISC =
INSTALL_SRC = heart.c $(VXETC)/heart_config.h $(VXETC)/heart_config.c \
$(VXETC)/erl.exec.c $(VXETC)/rdate.c $(VXETC)/vxcall.c \
$(VXETC)/erl_io.c
ERLEXECDIR = $(VXETC)
INSTALL_LIBS = $(OBJDIR)/reclaim.o
INSTALL_OBJS = $(OBJDIR)/heart.o
TEXTFILES = $(BINDIR)/erl_script.sam
ERLSRV_OBJECTS=
MC_OUTPUTS=
ENTRY_LDFLAGS=
ENTRY_OBJ=
INSTALL_PROGS = \
$(INET_GETHOST) \
$(BINDIR)/heart \
$(BINDIR)/$(ERLEXEC) \
$(INSTALL_EMBEDDED_PROGS)
else
ifeq ($(findstring ose,$(TARGET)), ose)
INSTALL_TOP = $(OSEETC)/README.OSE
INSTALL_ERL_OSE = monolith lm erl_utils drivers port_progs host
INSTALL_SRC =
INSTALL_LIBS =
INSTALL_OBJS =
INSTALL_INCLUDES =
INSTALL_PROGS =
ERLSRV_OBJECTS=
MC_OUTPUTS=
ENTRY_LDFLAGS=
ENTRY_OBJ=
else
ifeq ($(TARGET),win32)
CFLAGS += -I$(EMUOSDIR) -I$(WINETC)
RC=rc.sh
MC=mc.sh
ERLSRV_HEADERS= \
$(WINETC)/erlsrv/erlsrv_global.h \
$(WINETC)/erlsrv/erlsrv_registry.h \
$(WINETC)/erlsrv/erlsrv_util.h \
$(WINETC)/erlsrv/erlsrv_interactive.h \
$(WINETC)/erlsrv/erlsrv_service.h
ifeq ($(USING_VC), yes)
ERLRES_OBJ=erl.res
ERLSRV_OBJECTS= \
$(OBJDIR)/erlsrv_registry.o \
$(OBJDIR)/erlsrv_service.o \
$(OBJDIR)/erlsrv_interactive.o \
$(OBJDIR)/erlsrv_main.o \
$(OBJDIR)/erlsrv_util.o \
$(OBJDIR)/erlsrv_logmess.res
MC_OUTPUTS= \
$(OBJDIR)/erlsrv_logmess.h $(OBJDIR)/erlsrv_logmess.rc
MT_FLAG="-MT"
else
ERLRES_OBJ=erl_res.o
ERLSRV_OBJECTS= \
$(OBJDIR)/erlsrv_registry.o \
$(OBJDIR)/erlsrv_service.o \
$(OBJDIR)/erlsrv_interactive.o \
$(OBJDIR)/erlsrv_main.o \
$(OBJDIR)/erlsrv_util.o \
$(OBJDIR)/erlsrv_logmess.o
MC_OUTPUTS= \
$(OBJDIR)/erlsrv_logmess.h $(OBJDIR)/erlsrv_logmess.res
MT_FLAG="-MD"
endif
INET_GETHOST = $(BINDIR)/inet_gethost.exe
INSTALL_EMBEDDED_PROGS += $(BINDIR)/typer.exe $(BINDIR)/dialyzer.exe $(BINDIR)/erlc.exe $(BINDIR)/start_erl.exe $(BINDIR)/escript.exe $(BINDIR)/ct_run.exe
INSTALL_SRC = $(WINETC)/start_erl.c $(WINETC)/Nmakefile.start_erl
ERLEXECDIR=.
INSTALL_LIBS =
INSTALL_OBJS =
INSTALL_INCLUDES =
TEXTFILES = Install.ini
INSTALL_TOP = Install.ini
INSTALL_TOP_BIN = $(BINDIR)/Install.exe
INSTALL_PROGS = \
$(INET_GETHOST) \
$(BINDIR)/heart.exe $(BINDIR)/erlsrv.exe \
$(BINDIR)/erl.exe $(BINDIR)/werl.exe \
$(BINDIR)/$(ERLEXEC) \
$(INSTALL_EMBEDDED_PROGS)
ENTRY_SRC=$(WINETC)/port_entry.c
ENTRY_OBJ=$(OBJDIR)/port_entry.o
ifeq ($(USING_VC), yes)
WINDSOCK = ws2_32.lib mswsock.lib
else
WINDSOCK = -lws2_32
endif
PORT_ENTRY_POINT=erl_port_entry
ENTRY_LDFLAGS=-entry:$(PORT_ENTRY_POINT)
else
ENTRY_LDFLAGS=
ENTRY_OBJ=
ERLSRV_OBJECTS=
MC_OUTPUTS=
INET_GETHOST = $(BINDIR)/inet_gethost@EXEEXT@
INSTALL_EMBEDDED_PROGS += $(BINDIR)/typer@EXEEXT@ $(BINDIR)/dialyzer@EXEEXT@ \
$(BINDIR)/erlc@EXEEXT@ $(BINDIR)/escript@EXEEXT@ $(BINDIR)/ct_run@EXEEXT@ \
$(BINDIR)/run_erl $(BINDIR)/to_erl $(BINDIR)/dyn_erl
INSTALL_EMBEDDED_DATA = ../unix/start.src ../unix/start_erl.src
INSTALL_TOP = Install
INSTALL_TOP_BIN =
INSTALL_MISC = ../unix/format_man_pages ../unix/makewhatis
INSTALL_SRC = ../unix/setuid_socket_wrap.c #delivered as an example
ERLEXECDIR = .
INSTALL_LIBS =
INSTALL_OBJS =
INSTALL_INCLUDES =
TEXTFILES = Install erl.src
INSTALL_PROGS = \
$(INET_GETHOST) \
$(BINDIR)/heart@EXEEXT@ \
$(BINDIR)/$(ERLEXEC) \
$(INSTALL_EMBEDDED_PROGS)
endif
endif
endif
.PHONY: etc
etc: $(ENTRY_OBJ) $(INSTALL_PROGS) $(INSTALL_LIBS) $(TEXTFILES) $(INSTALL_TOP_BIN)
# erlexec needs the erts_internal library...
$(ERTS_LIB):
cd $(ERL_TOP)/erts/lib_src && $(MAKE) $(TYPE)
.PHONY: docs
docs:
.PHONY: clean
clean:
ifneq ($(INSTALL_PROGS),)
rm -f $(INSTALL_PROGS)
endif
ifneq ($(ENTRY_OBJ),)
rm -f $(ENTRY_OBJ)
endif
ifneq ($(ERLSRV_OBJECTS),)
rm -f $(ERLSRV_OBJECTS)
endif
ifneq ($(MC_OUTPUTS),)
rm -f $(MC_OUTPUTS)
endif
ifneq ($(ERLRES_OBJ),)
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/$(ERLRES_OBJ)
endif
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/win_erlexec.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/init_file.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/start_erl.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/dialyzer.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/erlexec.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/erl_io.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/erlc.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/escript.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/heart.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/heart_config.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/inet_gethost.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/rdate.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/reclaim.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/run_erl.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/to_erl.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/dyn_erl.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/safe_string.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/typer.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/ct_run.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/vxcall.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/erl.o
rm -f $(ERL_TOP)/erts/obj*/$(TARGET)/werl.o
rm -f *~ core
#
# Objects & executables
#
#$(OBJDIR)/%.o: %.c
# $(CC) $(CFLAGS) -o $@ -c $<
#
#$(OBJDIR)/%.o: ../unix/%.c
# $(CC) $(CFLAGS) -o $@ -c $<
#
#$(BINDIR)/%: $(OBJDIR)/%.o
# $(PURIFY) $(LD) $(LDFLAGS) -o $@ $< $(LIBS)
$(OBJDIR)/inet_gethost.o: inet_gethost.c
$(CC) $(CFLAGS) -o $@ -c inet_gethost.c
$(BINDIR)/inet_gethost@EXEEXT@: $(OBJDIR)/inet_gethost.o $(ENTRY_OBJ) $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) $(ENTRY_LDFLAGS) -o $@ $(OBJDIR)/inet_gethost.o $(ENTRY_OBJ) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(BINDIR)/run_erl: $(OBJDIR)/safe_string.o $(OBJDIR)/run_erl.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/safe_string.o $(OBJDIR)/run_erl.o $(LIBS)
$(OBJDIR)/run_erl.o: ../unix/run_erl.c
$(CC) $(CFLAGS) -o $@ -c ../unix/run_erl.c
$(BINDIR)/to_erl: $(OBJDIR)/safe_string.o $(OBJDIR)/to_erl.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/safe_string.o $(OBJDIR)/to_erl.o
$(OBJDIR)/to_erl.o: ../unix/to_erl.c
$(CC) $(CFLAGS) -o $@ -c ../unix/to_erl.c
$(BINDIR)/dyn_erl: $(OBJDIR)/safe_string.o $(OBJDIR)/dyn_erl.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/safe_string.o $(OBJDIR)/dyn_erl.o
$(OBJDIR)/dyn_erl.o: ../unix/dyn_erl.c
$(CC) $(CFLAGS) -o $@ -c ../unix/dyn_erl.c
$(OBJDIR)/safe_string.o: ../unix/safe_string.c
$(CC) $(CFLAGS) -o $@ -c ../unix/safe_string.c
ifneq ($(TARGET),win32)
$(BINDIR)/$(ERLEXEC): $(OBJDIR)/$(ERLEXEC).o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/$(ERLEXEC).o $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/$(ERLEXEC).o: $(ERLEXECDIR)/$(ERLEXEC).c
$(CC) -I$(EMUDIR) $(CFLAGS) -o $@ -c $(ERLEXECDIR)/$(ERLEXEC).c
endif
$(BINDIR)/erlc@EXEEXT@: $(OBJDIR)/erlc.o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erlc.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/erlc.o: erlc.c
$(CC) $(CFLAGS) -o $@ -c erlc.c
$(BINDIR)/dialyzer@EXEEXT@: $(OBJDIR)/dialyzer.o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/dialyzer.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/dialyzer.o: dialyzer.c
$(CC) $(CFLAGS) -o $@ -c dialyzer.c
$(BINDIR)/typer@EXEEXT@: $(OBJDIR)/typer.o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/typer.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/typer.o: typer.c
$(CC) $(CFLAGS) -o $@ -c typer.c
$(BINDIR)/escript@EXEEXT@: $(OBJDIR)/escript.o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/escript.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/escript.o: escript.c
$(CC) $(CFLAGS) -o $@ -c escript.c
$(BINDIR)/ct_run@EXEEXT@: $(OBJDIR)/ct_run.o $(ERTS_LIB)
$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/ct_run.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS)
$(OBJDIR)/ct_run.o: ct_run.c
$(CC) $(CFLAGS) -o $@ -c ct_run.c
#------------------------------------------------------------------------
# Windows specific targets
# The windows platform is quite different from the others. erl/werl are small C programs
# loading a DLL. INI files are used instead of environment variables and the Install
# script is actually a program, also Install has an INI file which tells of emulator
# versions etc.
#----------------------------------------------------------------------
ifeq ($(TARGET),win32)
$(BINDIR)/$(ERLEXEC): $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(ERTS_LIB)
$(LD) -dll $(LDFLAGS) -o $@ $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(ERTS_INTERNAL_LIBS)
$(BINDIR)/erl@EXEEXT@: $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ)
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ)
$(BINDIR)/werl@EXEEXT@: $(OBJDIR)/werl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ)
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/werl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ)
$(BINDIR)/start_erl@EXEEXT@: $(OBJDIR)/start_erl.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/start_erl.o
$(BINDIR)/Install@EXEEXT@: $(OBJDIR)/Install.o $(OBJDIR)/init_file.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/Install.o $(OBJDIR)/init_file.o
$(BINDIR)/erlsrv@EXEEXT@: $(ERLSRV_OBJECTS)
$(LD) $(LDFLAGS) $(MT_FLAG) -o $@ $(ERLSRV_OBJECTS)
# The service expects to be compiled with $(MT_FLAG) flag.
$(OBJDIR)/%.o: $(WINETC)/erlsrv/%.c $(ERLSRV_HEADERS)
$(CC) $(CFLAGS) $(MT_FLAG) -o $@ -c $<
$(OBJDIR)/erlsrv_util.o: $(WINETC)/erlsrv/erlsrv_util.c $(ERLSRV_HEADERS) \
$(OBJDIR)/erlsrv_logmess.h
$(CC) $(CFLAGS) -I$(OBJDIR) $(MT_FLAG) -o $@ -c $<
ifeq ($(USING_VC), yes)
$(OBJDIR)/erlsrv_logmess.res: $(OBJDIR)/erlsrv_logmess.rc
$(RC) -o $(OBJDIR)/erlsrv_logmess.res -I$(OBJDIR) $(OBJDIR)/erlsrv_logmess.rc
else
$(OBJDIR)/erlsrv_logmess.o: $(OBJDIR)/erlsrv_logmess.res
$(RC) -o $(OBJDIR)/erlsrv_logmess.o -I$(OBJDIR) $(OBJDIR)/erlsrv_logmess.res
endif
$(MC_OUTPUTS): $(WINETC)/erlsrv/erlsrv_logmess.mc
$(MC) -o $(OBJDIR) $(WINETC)/erlsrv/erlsrv_logmess.mc
$(OBJDIR)/werl.o: $(WINETC)/erl.c
$(CC) $(CFLAGS) -DBUILD_TYPE=\"-$(TYPE)\" -DERL_RUN_SHARED_LIB=1 \
-DWIN32_WERL -o $@ -c $(WINETC)/erl.c
$(OBJDIR)/erl.o: $(WINETC)/erl.c
$(CC) $(CFLAGS) -DBUILD_TYPE=\"-$(TYPE)\" -DERL_RUN_SHARED_LIB=1 \
-o $@ -c $(WINETC)/erl.c
$(OBJDIR)/erlexec.o: $(ERLEXECDIR)/erlexec.c
$(CC) $(CFLAGS) -DBUILD_TYPE=\"-$(TYPE)\" -DERL_RUN_SHARED_LIB=1 \
-o $@ -c $(ERLEXECDIR)/erlexec.c
$(OBJDIR)/win_erlexec.o: $(WINETC)/win_erlexec.c
$(CC) $(CFLAGS) -DBUILD_TYPE=\"-$(TYPE)\" -DERL_RUN_SHARED_LIB=1 \
-o $@ -c $(WINETC)/win_erlexec.c
$(OBJDIR)/init_file.o: $(WINETC)/init_file.c $(WINETC)/init_file.h
$(CC) $(CFLAGS) -o $@ -c $(WINETC)/init_file.c
$(OBJDIR)/Install.o: $(WINETC)/Install.c $(WINETC)/init_file.h
$(CC) $(CFLAGS) -o $@ -c $(WINETC)/Install.c
$(OBJDIR)/$(ERLRES_OBJ): $(WINETC)/erl.rc $(WINETC)/erlang.ico $(WINETC)/erl_icon.ico $(WINETC)/hrl_icon.ico $(WINETC)/beam_icon.ico
$(RC) -o $@ -I$(WINETC) $(WINETC)/erl.rc
$(OBJDIR)/start_erl.o: $(WINETC)/start_erl.c
$(CC) $(CFLAGS) -o $@ -c $(WINETC)/start_erl.c
$(ENTRY_OBJ): $(ENTRY_SRC)
$(CC) $(CFLAGS) -o $@ -c $(ENTRY_SRC)
Install.ini: ../$(TARGET)/Install.src ../../vsn.mk $(TARGET)/Makefile
sed -e 's;%I_VSN%;$(VSN);' \
-e 's;%I_SYSTEM_VSN%;$(SYSTEM_VSN);' \
../$(TARGET)/Install.src > Install.ini
endif
#---------------------------------------------------------
# End of windows specific targets.
#---------------------------------------------------------
ifeq ($(findstring vxworks,$(TARGET)), vxworks)
$(BINDIR)/heart: $(OBJDIR)/heart.o $(OBJDIR)/heart_config.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/heart.o $(OBJDIR)/heart_config.o
$(OBJDIR)/heart_config.o: $(VXETC)/heart_config.c
$(CC) $(CFLAGS) -o $@ -c $(VXETC)/heart_config.c
$(OBJDIR)/reclaim.o: $(VXETC)/reclaim.c
$(CC) $(CFLAGS) -o $@ -c $(VXETC)/reclaim.c
$(OBJDIR)/heart.o: heart.c
$(CC) $(CFLAGS) -I$(VXETC) -o $@ -c heart.c
$(BINDIR)/erl_script.sam: $(VXETC)/erl_script.sam.in ../../vsn.mk
sed -e 's;%VSN%;$(VSN);' \
$(VXETC)/erl_script.sam.in > $(BINDIR)/erl_script.sam
else
$(BINDIR)/heart@EXEEXT@: $(OBJDIR)/heart.o $(ENTRY_OBJ)
$(LD) $(LDFLAGS) $(ENTRY_LDFLAGS) -o $@ $(OBJDIR)/heart.o \
$(ENTRY_OBJ) $(WINDSOCK)
$(OBJDIR)/heart.o: heart.c
$(CC) $(CFLAGS) -o $@ -c heart.c
endif
# VxWorks specific executables and objects ...
$(BINDIR)/erl_io: $(OBJDIR)/erl_io.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erl_io.o
$(OBJDIR)/erl_io.o: $(VXETC)/erl_io.c
$(CC) $(CFLAGS) -o $@ -c $(VXETC)/erl_io.c
$(BINDIR)/rdate: $(OBJDIR)/rdate.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/rdate.o
$(OBJDIR)/rdate.o: $(VXETC)/rdate.c
$(CC) $(CFLAGS) -o $@ -c $(VXETC)/rdate.c
$(BINDIR)/vxcall: $(OBJDIR)/vxcall.o
$(LD) $(LDFLAGS) -o $@ $(OBJDIR)/vxcall.o
$(OBJDIR)/vxcall.o: $(VXETC)/vxcall.c
$(CC) $(CFLAGS) -o $@ -c $(VXETC)/vxcall.c
Install: ../unix/Install.src ../../vsn.mk $(TARGET)/Makefile
sed -e 's;%I_VSN%;$(VSN);' \
-e 's;%EMULATOR%;$(EMULATOR);' \
-e 's;%EMULATOR_NUMBER%;$(EMULATOR_NUMBER);' \
-e 's;%I_SYSTEM_VSN%;$(SYSTEM_VSN);' \
../unix/Install.src > Install
erl.src: ../unix/erl.src.src ../../vsn.mk $(TARGET)/Makefile
sed -e 's;%EMULATOR%;$(EMULATOR);' \
-e 's;%EMULATOR_NUMBER%;$(EMULATOR_NUMBER);' \
-e 's;%VSN%;$(VSN);' \
../unix/erl.src.src > erl.src
# ----------------------------------------------------
# Release Target
# ----------------------------------------------------
include $(ERL_TOP)/make/otp_release_targets.mk
.PHONY: release_spec
release_spec: etc
ifneq ($(INSTALL_OBJS),)
$(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/obj
$(INSTALL_DATA) $(INSTALL_OBJS) $(RELEASE_PATH)/erts-$(VSN)/obj
endif
$(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/bin
ifneq ($(TARGET), win32)
ifneq ($(findstring vxworks,$(TARGET)), vxworks)
ifneq ($(findstring ose,$(TARGET)), ose)
$(INSTALL_SCRIPT) erl.src $(RELEASE_PATH)/erts-$(VSN)/bin
endif
endif
endif
ifneq ($(INSTALL_PROGS),)
$(INSTALL_PROGRAM) $(INSTALL_PROGS) $(RELEASE_PATH)/erts-$(VSN)/bin
endif
ifneq ($(INSTALL_TOP),)
$(INSTALL_SCRIPT) $(INSTALL_TOP) $(RELEASE_PATH)
endif
ifneq ($(INSTALL_TOP_BIN),)
$(INSTALL_PROGRAM) $(INSTALL_TOP_BIN) $(RELEASE_PATH)
endif
ifneq ($(INSTALL_MISC),)
$(INSTALL_DIR) $(RELEASE_PATH)/misc
$(INSTALL_SCRIPT) $(INSTALL_MISC) $(RELEASE_PATH)/misc
endif
ifneq ($(INSTALL_ERL_OSE),)
$(INSTALL_DIR) $(RELEASE_PATH)/build_erl_ose
cd $(OSEETC) && $(TAR) erl_ose_$(SYSTEM_VSN).tar $(INSTALL_ERL_OSE)
cd $(OSEETC) && $(INSTALL_SCRIPT) erl_ose_$(SYSTEM_VSN).tar $(RELEASE_PATH)/build_erl_ose
endif
ifneq ($(INSTALL_SRC),)
$(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/src
$(INSTALL_DATA) $(INSTALL_SRC) $(RELEASE_PATH)/erts-$(VSN)/src
endif
ifneq ($(INSTALL_EMBEDDED_DATA),)
$(INSTALL_DATA) $(INSTALL_EMBEDDED_DATA) $(RELEASE_PATH)/erts-$(VSN)/bin
endif
ifneq ($(INSTALL_LIBS),)
$(INSTALL_DATA) $(INSTALL_LIBS) $(RELEASE_PATH)/erts-$(VSN)/bin
endif
ifneq ($(INSTALL_INCLUDES),)
$(INSTALL_DIR) $(RELEASE_PATH)/erts-$(VSN)/include
$(INSTALL_DATA) $(INSTALL_INCLUDES) $(RELEASE_PATH)/erts-$(VSN)/include
endif
.PHONY: release_docs_spec
release_docs_spec: