r=cls
OS/2 GCC build changes
This commit is contained in:
mkaply%us.ibm.com 2003-03-24 14:07:08 +00:00
Родитель e0d58a904c
Коммит c6ebd60472
5 изменённых файлов: 83 добавлений и 96 удалений

Просмотреть файл

@ -33,6 +33,14 @@ endif
include $(topsrcdir)/config/rules.mk
# Need to copy over weaksyms.omf file from GCC directory
ifeq ($(MOZ_OS2_TOOLS),EMX)
weaksyms.omf:
$(INSTALL) $(EMX2)/lib/gcc-lib/i386-pc-os2-emx/3.2.1/weaksyms.omf .
export:: weaksyms.omf
endif
# Install bloaturls.txt file for tinderbox bloat test.
libs:: bloaturls.txt
$(INSTALL) $< $(DIST)/bin

Просмотреть файл

@ -101,14 +101,9 @@ libs::
$(RM) -rf $(DIST)/sdk/nspr/bin $(DIST)/sdk/nspr/share
mv $(DIST)/sdk/nspr/lib $(DIST)/sdk/nspr/bin
ifndef DISABLE_DIST_GRE
ifeq ($(OS_ARCH),OS2)
$(NSINSTALL) -D $(GRE_DIST)
cp $(DIST)/sdk/nspr/bin/$(LIB_PREFIX)*$(DLL_SUFFIX) $(GRE_DIST)
else
$(INSTALL) $(DIST)/sdk/nspr/bin/*$(DLL_SUFFIX) $(GRE_DIST)
endif
endif
endif
# we don't use an explicit dependency here because then we would
# regenerate nsBuildID.h during the make install phase and that would

Просмотреть файл

@ -600,7 +600,7 @@ COMPILE_CXXFLAGS = $(DEFINES) $(INCLUDES) $(XCFLAGS) $(PROFILER_CFLAGS) $(DSO_CF
# put on the link line for binaries, and should
# we link statically or dynamic? Assuming dynamic for now.
ifneq (,$(filter-out OS2, $(OS_ARCH)))
ifneq ($(MOZ_OS2_TOOLS),VACPP)
ifneq (WINNT_,$(OS_ARCH)_$(GNU_CC))
LIBS_DIR = -L$(DIST)/bin -L$(DIST)/lib
endif

Просмотреть файл

@ -157,10 +157,6 @@ endif
SHARED_LIBRARY := $(LIBRARY:.$(LIB_SUFFIX)=$(DLL_SUFFIX))
ifeq ($(OS_ARCH),OS2)
DEF_OBJS = $(OBJS)
ifneq ($(EXPORT_OBJS),1)
DEF_OBJS += $(SHARED_LIBRARY_LIBS)
endif
DEF_FILE := $(SHARED_LIBRARY:.dll=.def)
endif
@ -258,7 +254,7 @@ ifndef HOST_OBJS
HOST_OBJS = $(addprefix host_,$(HOST_CSRCS:.c=.o))
endif
ifeq ($(OS_ARCH),OS2)
ifeq ($(MOZ_OS2_TOOLS),VACPP)
LIBOBJS := $(OBJS)
else
LIBOBJS := $(addprefix \", $(OBJS))
@ -810,9 +806,9 @@ ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
$(LD) /NOLOGO /OUT:$@ /PDB:$(PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
else
ifeq ($(CPP_PROG_LINK),1)
$(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS)
$(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(PROFILER_LIBS) $(EXE_DEF_FILE)
else # ! CPP_PROG_LINK
$(CC) -o $@ $(CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS)
$(CC) -o $@ $(CFLAGS) $(PROGOBJS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE)
endif # CPP_PROG_LINK
endif # WINNT && !GNU_CC
endif # OS2
@ -902,13 +898,12 @@ ifndef NO_DIST_INSTALL
$(INSTALL) $(IFLAGS2) $^.quantify $(DIST)/bin
endif
ifneq ($(OS_ARCH),OS2)
#
# This allows us to create static versions of the shared libraries
# that are built using other static libraries. Confused...?
#
ifdef SHARED_LIBRARY_LIBS
ifeq ($(OS_ARCH),WINNT)
ifeq (,$(filter-out OS2 WINNT, $(OS_ARCH)))
ifneq (,$(BUILD_STATIC_LIBS)$(FORCE_STATIC_LIB))
LOBJS += $(SHARED_LIBRARY_LIBS)
endif
@ -925,7 +920,7 @@ endif
$(LIBRARY): $(OBJS) $(LOBJS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) Makefile Makefile.in
rm -f $@
ifneq ($(OS_ARCH),WINNT)
ifneq (,$(filter-out OS2 WINNT, $(OS_ARCH)))
ifdef SHARED_LIBRARY_LIBS
@rm -f $(SUB_LOBJS)
@for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
@ -939,37 +934,28 @@ ifeq ($(OS_ARCH),WINNT)
$(IMPORT_LIBRARY): $(SHARED_LIBRARY)
endif
else # OS2
ifdef SHARED_LIBRARY_LIBS
SUB_LOBJS = $(SHARED_LIBRARY_LIBS)
endif
$(DEF_FILE): $(DEF_OBJS)
ifeq ($(OS_ARCH),OS2)
$(DEF_FILE): $(OBJS) $(SHARED_LIBRARY_LIBS)
rm -f $@
echo LIBRARY $(LIBRARY_NAME) INITINSTANCE TERMINSTANCE > $(DEF_FILE)
echo PROTMODE >> $(DEF_FILE)
echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $(DEF_FILE)
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(DEF_FILE)
echo EXPORTS >> $(DEF_FILE)
echo LIBRARY $(LIBRARY_NAME) INITINSTANCE TERMINSTANCE > $@
echo PROTMODE >> $@
echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
echo EXPORTS >> $@
ifeq ($(IS_COMPONENT),1)
ifeq ($(HAS_EXTRAEXPORTS),1)
$(FILTER) $(DEF_OBJS) >> $(DEF_FILE)
$(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
else
echo NSGetModule >> $(DEF_FILE)
echo NSGetModule >> $@
endif
else
$(FILTER) $(DEF_OBJS) >> $(DEF_FILE)
$(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
endif
$(ADD_TO_DEF_FILE)
$(IMPORT_LIBRARY): $(OBJS) $(SHARED_LIBRARY)
$(IMPORT_LIBRARY): $(DEF_FILE)
rm -f $@
$(IMPLIB) $@ $(SHARED_LIBRARY)
$(RANLIB) $@
$(LIBRARY): $(OBJS) $(LOBJS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) Makefile Makefile.in
rm -f $@
$(AR) $(AR_FLAGS) $(OBJS) $(LOBJS) $(SUB_LOBJS)
$(IMPLIB) $@ $(DEF_FILE)
$(RANLIB) $@
endif # OS/2
@ -984,7 +970,7 @@ endif
$(SHARED_LIBRARY): $(OBJS) $(LOBJS) $(DEF_FILE) $(RESFILE) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) Makefile Makefile.in
rm -f $@
ifneq ($(OS_ARCH),OS2)
ifneq ($(MOZ_OS2_TOOLS),VACPP)
ifeq ($(OS_ARCH),OpenVMS)
@if test ! -f $(VMS_SYMVEC_FILE); then \
if test -f $(VMS_SYMVEC_FILE_MODULE); then \
@ -1007,12 +993,10 @@ endif # SHARED_LIBRARY_LIBS
endif # NO_LD_ARCHIVE_FLAGS
$(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
@rm -f foodummyfilefoo $(SUB_SHLOBJS)
else # OS2
ifeq ($(MOZ_OS2_TOOLS),VACPP)
else # os2 vacpp
$(MKSHLIB) /O:$@ /DLL /INC:_dllentry $(LDFLAGS) $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE)
else
$(MKSHLIB) -o $@ $(OBJS) $(LOBJS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE)
endif
endif # !os2 vacpp
ifeq ($(OS_ARCH),OS2)
ifdef RESFILE
$(RC) $(RCFLAGS) $(RESFILE) $@
endif
@ -1034,12 +1018,6 @@ ifdef MOZ_POST_DSO_LIB_COMMAND
$(MOZ_POST_DSO_LIB_COMMAND) $@
endif
ifeq ($(OS_ARCH),OS2)
$(DLL): $(OBJS) $(EXTRA_LIBS)
rm -f $@
$(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(OS_LIBS)
endif
ifdef MOZ_AUTO_DEPS
ifndef COMPILER_DEPEND
#
@ -1720,7 +1698,6 @@ ifneq (,$(filter $(PROGRAM) $(HOST_PROGRAM) $(SIMPLE_PROGRAMS) $(HOST_LIBRARY) $
@echo "SHARED_LIBRARY_LIBS = $(SHARED_LIBRARY_LIBS)"
@echo "LIBS = $(LIBS)"
@echo "DEF_FILE = $(DEF_FILE)"
@echo "DEF_OBJS = $(DEF_OBJS)"
@echo "IMPORT_LIBRARY = $(IMPORT_LIBRARY)"
@echo "STATIC_LIBS = $(STATIC_LIBS)"
@echo "SHARED_LIBS = $(SHARED_LIBS)"

Просмотреть файл

@ -1217,21 +1217,15 @@ case "$target" in
*-os2*)
MOZ_BUILD_ROOT=`pwd -D`
AC_DEFINE(XP_OS2)
USE_SHORT_LIBNAME=1
BIN_SUFFIX='.exe'
OBJ_SUFFIX=obj
LIB_PREFIX=
LIB_SUFFIX=lib
DLL_SUFFIX=.dll
ASM_SUFFIX=asm
LD='$(CC)'
DSO_CFLAGS=''
DSO_PIC_CFLAGS=''
OS_ARCH=OS2
OS_TARGET=OS2
BIN_SUFFIX=".exe"
DLL_SUFFIX=".dll"
DSO_PIC_CFLAGS=
TARGET_MD_ARCH=os2
_PLATFORM_DEFAULT_TOOLKIT=os2
MOZ_WIDGET_TOOLKIT_LDFLAGS='$(DIST)/lib/wdgt$(MOZ_WIDGET_TOOLKIT)'
MOZ_GFX_TOOLKIT_LDFLAGS='$(DIST)/lib/gfx_$(MOZ_WIDGET_TOOLKIT)'
WIDGET_DLL='\"wdgt$(MOZ_WIDGET_TOOLKIT)$(DLL_SUFFIX)\"'
GFXWIN_DLL='\"gfx_$(MOZ_GFX_TOOLKIT)$(DLL_SUFFIX)\"'
MOZ_ENABLE_POSTSCRIPT=
@ -1245,36 +1239,38 @@ case "$target" in
fi
# EMX/GCC build
if test "$GNU_CC"; then
_PEDANTIC=''
AR=emxomfar
AR_FLAGS='-p256 r $@'
CFLAGS="-Zmtd -Zomf $CFLAGS"
CXXFLAGS="-Zmtd -Zomf $CXXFLAGS"
DSO_LDOPTS='-Zomf -Zdll -Zmt -Zcrtdll -Zlinker /NOO'
BIN_FLAGS='-Zlinker /PM:VIO -Zlinker /ST:0x30000'
IMPLIB='emximp -o'
FILTER='emxexp'
LIB_PREFIX=lib
if test -n "$GNU_CC"; then
# AC_DEFINE(USE_OS2_TOOLKIT_HEADERS)
AC_DEFINE(OS2)
AC_DEFINE(XP_OS2_EMX)
AC_DEFINE(OS2EMX_PLAIN_CHAR)
MOZ_COMPONENT_NSPR_LIBS='-L$(DIST)/lib $(NSPR_LIBS)'
MOZ_COMPONENT_XPCOM_LIBS='-L$(DIST)/lib $(DIST)/lib/xpcom.lib'
AR=emxomfar
AR_FLAGS='-p256 r $@'
CFLAGS="$CFLAGS -Zmtd -Zomf"
CXXFLAGS="$CXXFLAGS -Zmtd -Zomf"
DSO_LDOPTS='-Zdll'
BIN_FLAGS='-Zlinker /ST:0x30000'
IMPLIB='emximp -o'
FILTER='emxexp -o'
MOZ_DEBUG_FLAGS="-g -fno-inline"
MOZ_OPTIMIZE_LDFLAGS="-Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
MOZ_WIDGET_TOOLKIT_LDFLAGS='-lwdgt$(MOZ_WIDGET_TOOLKIT)'
MOZ_GFX_TOOLKIT_LDFLAGS='-lgfx_$(MOZ_WIDGET_TOOLKIT)'
MOZ_XPCOM_OBSOLETE_LIBS='-L$(DIST)/lib $(DIST)/lib/xpcomct.lib'
XPCOM_LIBS='-L$(DIST)/lib -lxpcom'
MOZ_JS_LIBS='$(DIST)/lib/libmozjs.lib'
MOZ_COMPONENT_XPCOM_LIBS='$(DIST)/lib/libxpcom.lib'
XPCOM_LIBS='$(DIST)/lib/libxpcom.lib'
MOZ_JPEG_LIBS='$(DIST)/lib/libmozjpeg.$(LIB_SUFFIX)'
MOZ_ZLIB_LIBS='$(DIST)/lib/libmozz.$(LIB_SUFFIX)'
MOZ_PNG_LIBS='$(DIST)/lib/libmozpng.$(LIB_SUFFIX)'
MOZ_MNG_LIBS='$(DIST)/lib/libmozmng.$(LIB_SUFFIX)'
fi
if test -z "$EMXOMFLD_LINKER"; then
# using LINK386.EXE
DSO_LDOPTS="$DSO_LDOPTS -Zlinker /NOO"
fi
# GCC for OS/2 currently predefines these, but we don't want them
_DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
_DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
# Visual Age C++ build
if test "$VACPP" = "yes"; then
# MOZ_BUILD_ROOT="$ROOT"`pwd -D`
elif test "$VACPP" = "yes"; then
MOZ_BUILD_ROOT=`pwd -D`
OBJ_SUFFIX=obj
AR=-ilib
AR_FLAGS='/NOL /NOI /O:$(subst /,\\,$@)'
AR_LIST='/L'
@ -1283,8 +1279,8 @@ case "$target" in
AS=alp
ASFLAGS='-Mb'
AS_DASH_C_FLAG=''
ASM_SUFFIX=asm
LD='-ilink'
TARGET_MD_ARCH=os2
CFLAGS="/Q /qlibansi /Gm+ /Su4 /Mp /Tl9"
CXXFLAGS="/Q /qlibansi /Gm+ /Su4 /Mp /Tl9 /Gx+"
MOZ_DEBUG_FLAGS="/Ti+"
@ -1293,9 +1289,9 @@ case "$target" in
MOZ_DEBUG_LDFLAGS="/DE"
MOZ_OPTIMIZE_LDFLAGS="/OPTFUNC /EXEPACK:2 /PACKCODE /PACKDATA"
DSO_LDOPTS=''
DSO_PIC_CFLAGS=
IMPLIB='implib /NOL /NOI'
FILTER='cppfilt -q -B -P'
LIB_PREFIX=
AC_DEFINE(NO_ANSI_KEYWORDS)
AC_DEFINE(OS2,4)
AC_DEFINE(_X86_)
@ -1314,6 +1310,8 @@ case "$target" in
MOZ_ZLIB_LIBS='$(DIST)/lib/mozz.$(LIB_SUFFIX)'
MOZ_PNG_LIBS='$(DIST)/lib/mozpng.$(LIB_SUFFIX)'
MOZ_MNG_LIBS='$(DIST)/lib/mozmng.$(LIB_SUFFIX)'
MOZ_WIDGET_TOOLKIT_LDFLAGS='$(DIST)/lib/wdgt$(MOZ_WIDGET_TOOLKIT)'
MOZ_GFX_TOOLKIT_LDFLAGS='$(DIST)/lib/gfx_$(MOZ_WIDGET_TOOLKIT)'
fi
;;
@ -1422,6 +1420,10 @@ dnl the qsort routine under solaris is faulty
NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
;;
*-os2*)
HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
;;
esac
dnl Only one oddball right now (QNX), but this gives us flexibility
@ -1442,7 +1444,7 @@ if test -z "$MKSHLIB_FORCE_ALL" || test -z "$MKSHLIB_UNFORCE_ALL"; then
NO_LD_ARCHIVE_FLAGS=1
fi
case "$target" in
*-*-os2*)
*-os2*)
NO_LD_ARCHIVE_FLAGS=
;;
*-aix4.3*|*-aix5*)
@ -2064,11 +2066,6 @@ then
AC_DEFINE(_REENTRANT)
;;
*-*-os2*)
USE_PTHREADS=
_PTHREAD_LDFLAGS=
;;
alpha*-*-osf*)
AC_DEFINE(_REENTRANT)
;;
@ -3774,7 +3771,7 @@ MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG"
beos*)
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}"
;;
msvc*|mksnt*|cygwin*|mingw*)
msvc*|mksnt*|cygwin*|mingw*|os2*)
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
;;
*)
@ -5022,6 +5019,17 @@ if test "$USING_HCC"; then
AC_SUBST(CXX)
fi
dnl Need to specify location of the weak symbols file whenever compiling
dnl C++ files. The only way to do this is to export the environment
dnl variable on the same line that we call g++.
if test "$OS_ARCH" = "OS2" -a -n "$GNU_CC"; then
_OLDCXX=$CXX
CXX='export GCC_WEAKSYMS=$(DEPTH)/build/weaksyms.omf;'
CXX="$CXX $_OLDCXX"
AC_SUBST(CXX)
fi
dnl Check for missing components
if test "$no_x" != "yes"; then
if test ! -z "$MISSING_X"; then
@ -5035,7 +5043,6 @@ dnl ========================================================
if test "$OS_ARCH" = "OS2"; then
AC_DEFINE(XP_PC)
AC_DEFINE(XP_OS2)
if test "$VACPP" = "yes"; then
LIBS='so32dll.lib tcp32dll.lib'
fi