Introduce and use the OUTPUTEXE and OUTPUTOBJ build variables
parent
f2d5d60376
commit
3564aade19
2
Makefile
2
Makefile
|
@ -1075,7 +1075,7 @@ partialclean::
|
|||
ifeq "$(UNIX_OR_WIN32)" "unix"
|
||||
.PHONY: checkstack
|
||||
checkstack:
|
||||
if $(MKEXE) -o tools/checkstack$(EXE) tools/checkstack.c; \
|
||||
if $(MKEXE) $(OUTPUTEXE)tools/checkstack$(EXE) tools/checkstack.c; \
|
||||
then tools/checkstack$(EXE); \
|
||||
else :; \
|
||||
fi
|
||||
|
|
|
@ -48,12 +48,10 @@ CPPFLAGS += -DSYS_$(SYSTEM) $(IFLEXDIR) $(LIBUNWIND_INCLUDE_FLAGS)
|
|||
ifeq "$(TOOLCHAIN)" "msvc"
|
||||
DFLAGS = $(CFLAGS) -DDEBUG
|
||||
PFLAGS=$(CFLAGS) -DPROFILING $(NATIVECCPROFOPTS)
|
||||
OUTPUTOBJ = -Fo
|
||||
ASMOBJS=$(ARCH)nt.$(O)
|
||||
else
|
||||
DFLAGS = $(CFLAGS) -g -DDEBUG
|
||||
PFLAGS=$(CFLAGS) -pg -DPROFILING $(NATIVECCPROFOPTS)
|
||||
OUTPUTOBJ = -o
|
||||
ASMOBJS=$(ARCH).$(O)
|
||||
endif
|
||||
|
||||
|
|
|
@ -61,11 +61,6 @@ ifneq "$(CCOMPTYPE)" "msvc"
|
|||
DFLAGS += -g
|
||||
endif
|
||||
|
||||
ifeq "$(CCOMPTYPE)" "msvc"
|
||||
OUTPUTOBJ=-Fo
|
||||
else
|
||||
OUTPUTOBJ=-o
|
||||
endif
|
||||
DBGO=d.$(O)
|
||||
|
||||
ifeq "$(UNIX_OR_WIN32)" "win32"
|
||||
|
|
|
@ -59,8 +59,10 @@ A=a
|
|||
S=s
|
||||
SO=s.o
|
||||
EXE=.exe
|
||||
OUTPUTEXE=-o
|
||||
EXT_DLL=.dll
|
||||
EXT_OBJ=.$(O)
|
||||
OUTPUTOBJ=-o
|
||||
EXT_LIB=.$(A)
|
||||
EXT_ASM=.$(S)
|
||||
MANEXT=1
|
||||
|
@ -109,9 +111,6 @@ CPPFLAGS = -DCAML_NAME_SPACE
|
|||
OCAMLC_CFLAGS = -O -mms-bitfields
|
||||
BYTECCDBGCOMPOPTS=-g
|
||||
|
||||
### Flag to use to rename object files. (for debug version.)
|
||||
NAME_OBJ_FLAG=-o
|
||||
|
||||
LDFLAGS=
|
||||
|
||||
### Libraries needed
|
||||
|
@ -143,7 +142,7 @@ MKEXEDEBUGFLAG=-g
|
|||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) -o $(1) $(2)
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) $(OUTPUTEXE)$(1) $(2)
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1)
|
||||
|
|
|
@ -59,8 +59,10 @@ A=a
|
|||
S=s
|
||||
SO=s.o
|
||||
EXE=.exe
|
||||
OUTPUTEXE=-o
|
||||
EXT_DLL=.dll
|
||||
EXT_OBJ=.$(O)
|
||||
OUTPUTOBJ=-o
|
||||
EXT_LIB=.$(A)
|
||||
EXT_ASM=.$(S)
|
||||
MANEXT=1
|
||||
|
@ -110,9 +112,6 @@ OCAMLC_CFLAGS = -O -mms-bitfields
|
|||
|
||||
BYTECCDBGCOMPOPTS=-g
|
||||
|
||||
### Flag to use to rename object files. (for debug version.)
|
||||
NAME_OBJ_FLAG=-o
|
||||
|
||||
LDFLAGS=
|
||||
|
||||
### Libraries needed
|
||||
|
@ -144,7 +143,7 @@ MKEXEDEBUGFLAG=-g
|
|||
MKMAINDLL=$(FLEXLINK) -maindll
|
||||
|
||||
### Native command to build ocamlrun.exe without flexlink
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) -o $(1) $(2)
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) $(OUTPUTEXE)$(1) $(2)
|
||||
|
||||
### How to build a static library
|
||||
MKLIB=rm -f $(1); $(TOOLPREF)ar rc $(1) $(2); $(RANLIB) $(1)
|
||||
|
|
|
@ -54,8 +54,10 @@ A=lib
|
|||
S=asm
|
||||
SO=s.obj
|
||||
EXE=.exe
|
||||
OUTPUTEXE=-Fe
|
||||
EXT_DLL=.dll
|
||||
EXT_OBJ=.$(O)
|
||||
OUTPUTOBJ=-Fo
|
||||
EXT_LIB=.$(A)
|
||||
EXT_ASM=.$(S)
|
||||
MANEXT=1
|
||||
|
@ -104,9 +106,6 @@ OCAMLC_CFLAGS = -nologo -O2 -Gy- -MD
|
|||
OCAMLC_CPPFLAGS = -D_CRT_SECURE_NO_DEPRECATE
|
||||
BYTECCDBGCOMPOPTS=-Zi
|
||||
|
||||
### Flag to use to rename object files. (for debug version.)
|
||||
NAME_OBJ_FLAG=-Fo
|
||||
|
||||
LDFLAGS=
|
||||
|
||||
### Libraries needed
|
||||
|
@ -141,7 +140,7 @@ MKMAINDLL=$(FLEXLINK) -maindll
|
|||
MERGEMANIFESTEXE=test ! -f $(1).manifest \
|
||||
|| mt -nologo -outputresource:$(1) -manifest $(1).manifest \
|
||||
&& rm -f $(1).manifest
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) /Fe$(1) $(2) /link /subsystem:console \
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) $(OUTPUTEXE)$(1) $(2) /link /subsystem:console \
|
||||
&& ($(MERGEMANIFESTEXE))
|
||||
|
||||
### How to build a static library
|
||||
|
|
|
@ -54,8 +54,10 @@ A=lib
|
|||
S=asm
|
||||
SO=s.obj
|
||||
EXE=.exe
|
||||
OUTPUTEXE=-Fe
|
||||
EXT_DLL=.dll
|
||||
EXT_OBJ=.$(O)
|
||||
OUTPUTOBJ=-Fo
|
||||
EXT_LIB=.$(A)
|
||||
EXT_ASM=.$(S)
|
||||
MANEXT=1
|
||||
|
@ -104,9 +106,6 @@ OCAMLC_CPPFLAGS = -D_CRT_SECURE_NO_DEPRECATE
|
|||
|
||||
BYTECCDBGCOMPOPTS=-Zi
|
||||
|
||||
### Flag to use to rename object files. (for debug version.)
|
||||
NAME_OBJ_FLAG=-Fo
|
||||
|
||||
LDFLAGS=
|
||||
|
||||
### Libraries needed
|
||||
|
@ -143,7 +142,7 @@ MKMAINDLL=$(FLEXLINK) -maindll
|
|||
MERGEMANIFESTEXE=test ! -f $(1).manifest \
|
||||
|| mt -nologo -outputresource:$(1) -manifest $(1).manifest \
|
||||
&& rm -f $(1).manifest
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) /Fe$(1) $(2) /link /subsystem:console \
|
||||
MKEXE_BOOT=$(CC) $(CFLAGS) $(OUTPUTEXE)$(1) $(2) /link /subsystem:console \
|
||||
&& ($(MERGEMANIFESTEXE))
|
||||
|
||||
### How to build a static library
|
||||
|
|
|
@ -1972,6 +1972,7 @@ echo "BYTECCLIBS=$cclibs $dllib $curseslibs $pthread_link \
|
|||
$instrumented_runtime_libs" >> Makefile
|
||||
echo "RPATH=$rpath" >> Makefile
|
||||
echo "EXE=$exe" >> Makefile
|
||||
echo "OUTPUTEXE=-o" >> Makefile
|
||||
echo "SUPPORTS_SHARED_LIBRARIES=$shared_libraries_supported" >> Makefile
|
||||
echo "SHAREDCCCOMPOPTS=$sharedcccompopts" >> Makefile
|
||||
echo "MKSHAREDLIBRPATH=$mksharedlibrpath" >> Makefile
|
||||
|
@ -2007,6 +2008,7 @@ echo "O=o" >> Makefile
|
|||
echo "A=a" >> Makefile
|
||||
echo "SO=$SO" >> Makefile
|
||||
echo "EXT_OBJ=.o" >> Makefile
|
||||
echo "OUTPUTOBJ=-o" >> Makefile
|
||||
echo "EXT_ASM=.s" >> Makefile
|
||||
echo "EXT_LIB=.a" >> Makefile
|
||||
echo "EXT_DLL=.$SO" >> Makefile
|
||||
|
|
|
@ -113,4 +113,4 @@ clean:: partialclean
|
|||
$(CAMLOPT) -c $(COMPFLAGS) $(OPTCOMPFLAGS) $<
|
||||
|
||||
.c.$(O):
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $<
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(OUTPUTOBJ)$@ $<
|
||||
|
|
|
@ -22,9 +22,9 @@ CAMLOBJS=bigarray.cmo
|
|||
include ../Makefile
|
||||
|
||||
mmap.$(O): ../$(UNIXLIB)/mmap.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $<
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(OUTPUTOBJ)$@ $<
|
||||
mmap_ba.$(O): ../unix/mmap_ba.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $<
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(OUTPUTOBJ)$@ $<
|
||||
|
||||
.PHONY: depend
|
||||
|
||||
|
|
|
@ -95,10 +95,6 @@ $(LIBNAME).cmxa: $(THREADS_NCOBJS)
|
|||
# The following lines produce two object files st_stubs_b.$(O) and
|
||||
# st_stubs_n.$(O) from the same source file st_stubs.c (it is compiled
|
||||
# twice, each time with different options).
|
||||
# Since the source and object file have a different basename, the name of
|
||||
# the object file to produce must be given to the C compiler.
|
||||
# For gcc this is done with the -ofoo.$(O) option.
|
||||
# For msvc it's the /Fofoo.$(O) option.
|
||||
|
||||
ifeq "$(TOOLCHAIN)" "msvc"
|
||||
CCOUTPUT=/Fo
|
||||
|
@ -108,13 +104,13 @@ endif
|
|||
|
||||
st_stubs_b.$(O): st_stubs.c $(HEADER)
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(ROOTDIR)/byterun \
|
||||
$(SHAREDCCCOMPOPTS) $(CCOUTPUT)$@ $<
|
||||
$(SHAREDCCCOMPOPTS) $(OUTPUTOBJ)$@ $<
|
||||
|
||||
st_stubs_n.$(O): st_stubs.c $(HEADER)
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -I$(ROOTDIR)/asmrun -I$(ROOTDIR)/byterun \
|
||||
$(SHAREDCCCOMPOPTS) -DNATIVE_CODE \
|
||||
-DTARGET_$(ARCH) -DMODEL_$(MODEL) -DSYS_$(SYSTEM) \
|
||||
$(CCOUTPUT)$@ -c $<
|
||||
$(OUTPUTOBJ)$@ -c $<
|
||||
|
||||
partialclean:
|
||||
rm -f *.cm*
|
||||
|
|
|
@ -140,12 +140,12 @@ $(CAMLHEADERS):
|
|||
for suff in '' d i; do \
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
|
||||
-DRUNTIME_NAME='"$(BINDIR)/ocamlrun'$$suff'"' \
|
||||
header.c -o tmpheader$(EXE) && \
|
||||
header.c $(OUTPUTEXE)tmpheader$(EXE) && \
|
||||
strip tmpheader$(EXE) && \
|
||||
mv tmpheader$(EXE) camlheader$$suff && \
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
|
||||
-DRUNTIME_NAME='"$(TARGET_BINDIR)/ocamlrun'$$suff'"' \
|
||||
header.c -o tmpheader$(EXE) && \
|
||||
header.c $(OUTPUTEXE)tmpheader$(EXE) && \
|
||||
strip tmpheader$(EXE) && \
|
||||
mv tmpheader$(EXE) target_camlheader$$suff; \
|
||||
done && \
|
||||
|
@ -156,25 +156,25 @@ else # Windows
|
|||
# TODO: see whether there is a way to further merge the rules below
|
||||
# with those above
|
||||
|
||||
camlheader target_camlheader camlheader_ur:
|
||||
camlheader target_camlheader camlheader_ur: headernt.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -I../byterun \
|
||||
-DRUNTIME_NAME='"ocamlrun"' headernt.c
|
||||
-DRUNTIME_NAME='"ocamlrun"' $(OUTPUTOBJ)headernt.$(O) $<
|
||||
$(MKEXE) -o tmpheader.exe headernt.$(O) $(EXTRALIBS)
|
||||
rm -f camlheader.exe
|
||||
mv tmpheader.exe camlheader
|
||||
cp camlheader target_camlheader
|
||||
cp camlheader camlheader_ur
|
||||
|
||||
camlheaderd target_camlheaderd:
|
||||
camlheaderd target_camlheaderd: headernt.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -I../byterun \
|
||||
-DRUNTIME_NAME='"ocamlrund"' headernt.c
|
||||
-DRUNTIME_NAME='"ocamlrund"' $(OUTPUTOBJ)headernt.$(O) $<
|
||||
$(MKEXE) -o tmpheader.exe headernt.$(O) $(EXTRALIBS)
|
||||
mv tmpheader.exe camlheaderd
|
||||
cp camlheaderd target_camlheaderd
|
||||
|
||||
camlheaderi:
|
||||
camlheaderi: headernt.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -I../byterun \
|
||||
-DRUNTIME_NAME='"ocamlruni"' headernt.c
|
||||
-DRUNTIME_NAME='"ocamlruni"' $(OUTPUTOBJ)headernt.$(O)
|
||||
$(MKEXE) -o tmpheader.exe headernt.$(O) $(EXTRALIBS)
|
||||
mv tmpheader.exe camlheaderi
|
||||
|
||||
|
|
|
@ -306,15 +306,8 @@ else
|
|||
DEF_SYMBOL_PREFIX = '-Dsymbol_prefix=""'
|
||||
endif
|
||||
|
||||
ifeq "$(CCOMPTYPE)" "msvc"
|
||||
CCOUT = -Fe
|
||||
else
|
||||
EMPTY =
|
||||
CCOUT = -o $(EMPTY)
|
||||
endif
|
||||
|
||||
objinfo_helper$(EXE): objinfo_helper.c ../config/s.h
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(CCOUT)objinfo_helper$(EXE) \
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(OUTPUTEXE)$@ \
|
||||
$(DEF_SYMBOL_PREFIX) $(LIBBFD_INCLUDE) $< $(LIBBFD_LINK)
|
||||
|
||||
OBJINFO=../compilerlibs/ocamlcommon.cma \
|
||||
|
|
|
@ -51,4 +51,4 @@ warshall.$(O): defs.h
|
|||
# also works for .obj files.
|
||||
|
||||
%.$(O): %.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $<
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(OUTPUTOBJ)$@ $<
|
||||
|
|
Loading…
Reference in New Issue