Subversion Repositories gelsvn

Rev

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

// -*- MPC -*-
// $Id: makedll.mpt 217 2006-05-05 09:35:48Z bj $

// ***********************************************************************
// The default compiler for the 'make' project type is gcc (provided by
// the fill_value() method in MakeProjectCreator.pm).  This can be
// controlled by setting the compilers template variable.  It may be
// changed on the MPC command line via the -value_template option.
// Additionally, each compiler has a default platform.  The default
// platform for gcc is linux.  This too can be changed via the
// -value_template option.  Below are some examples.
//
// Use SunCC on the default platform (solaris):
//   mwc.pl -type make -value_template compilers=SunCC
// Use the default compiler (gcc) on LynxOS:
//   mwc.pl -type make -value_template platforms=lynxos
// Use HP-UX aCC on the default platform (HP-UX):
//   mwc.pl -type make -value_template compilers=aCC
// ***********************************************************************

conditional_include "common"
conditional_include "unixcommon"

configurations   = Release
obj_ext          = .o
res_ext          = .res
compile_flags    =
arflags          =
pchsupport       = 1
targetoutdir     =
slash            = /
libopt           = -l
build64bit       = 1
pchext           = .gch
versupport       = 1
dependencies     = 1
visibility       =

// ***********************************************************************
// Configuration Section
// ***********************************************************************

Debug {
  lib_modifier = d
}

Release {
  optimize = 1
}

// ***********************************************************************
// Compiler Section
// ***********************************************************************

java {
  cxx            = javac
  ld             = :
  obj_ext        = .class
  output_option  =
  compile_option =
  ar             = jar
  arflags        = cvf
  platforms      = jvm
}

cxx_tru64 {
  cxx        = cxx
  clean      = cxx_repository so_locations
  tempincopt = "-ptr "
  tempinc    = cxx_repository
  platforms  = tru64
  pchcreate  = "-nopch_messages -create_pch "
  pchuse     = "-nopch_messages -use_pch "
}

cxx_vms {
  cxx             = cxx
  arflags         = r
  compilerflags   = -ieee -names_as_is_short
  linkflags       = -threads
  shflags         = -shared -auto_symvec
  clean           = cxx_repository
  tempinc         = cxx_repository
  platforms       = openvms
}

dmc {
  cxx          = dmc
  dmclink      = 1
  ar           = lib
  arflags      = -c
  obj_ext      = .obj
  dependencies =
  platforms    = dmc_win
}

gcc {
  cxx       = g++
  pic       = -fPIC
  shflags   = -shared
  platforms = linux
  pchcreate = "-o "
  pchnobj   = 1
  visopt    = -fvisibility=hidden -fvisibility-inlines-hidden
}

Intel {
  cxx       = icpc
  pic       = -fPIC
  shflags   = -shared
  platforms = linux
  visopt    = -fvisibility=hidden
}

SunCC {
  cxx             = CC
  pic             = -KPIC
  shflags         = -G
  compilerflags64 = -xarch=v9
  linkflags       = -library=Cstd -library=Crun
  clean           = SunWS_cache ir.out
  platforms       = solaris
  pchcreate       = -xpch=collect:
  pchuse          = -xpch=use:
  pchstop         = -xpchstop=
  pchext          = .Cpch
  visopt          = -xldscope=hidden
}

aCC {
  cxx             = aCC
  pic             = +Z
  shflags         = -b
  platforms       = hpux
  compilerflags   = -AA -D_RWSTD_MULTI_THREAD +W336
  compilerflags64 = +DA2.0W +DS2.0W
  linkflags       = -Wl,+s
  linkflags64     = -Wl,-x -Wl,+h$(@F) -ldl
  pchcreate       = "+hdr_create "
  pchuse          = "+hdr_use "
}

xlC_r {
  cxx             = xlC_r
  arflags64      += -X64 -rv
  compilerflags64 = -q64
  platforms       = aix
  pchcreate       = -qgenpcomp=
  pchuse          = -qusepcomp=
  dependencies    =
}

SGICC {
  cxx             = CC
  pic             = -KPIC
  shflags         = -shared
  compilerflags64 = -64
  linkflags       = -Wl,-woff,84
  clean           = ii_files
  platforms       = irix
  pchcreate       = -LANG:create_pch=
  pchuse          = -diag_suppress 3056 -LANG:use_pch=
}

wrsppc {
  cxx           = g++ppc
  cputype       = ppc
  cpu           = PPC604
  ar            = arppc
  nm            = nmppc
  compilerflags = -mlongcall
  platforms     = vxworks
}

wrspentium {
  cxx           = g++pentium
  cputype       = pentium
  cpu           = PENTIUM
  ar            = arpentium
  nm            = nmpentium
  platforms     = vxworks
}

NCC {
  cxx       = NCC
  pic       = -KPIC
  platforms = tandem
}

ghsppc {
  cxx           = cxppc
  ar            = cxppc
  arflags       = -archive -o
  compilerflags = --one_instantiation_per_object --exceptions
  platforms     = integrity
}

// ***********************************************************************
// Platform Section
// ***********************************************************************

jvm {
  versupport =
  lib_prefix =
  dll_ext    =
  lib_ext    = .jar
}

tru64 {
  shflags       = -shared /usr/lib/libcxxstd.a
  ldlibs        = -ltli -lrt
  extracppflags = -D__USE_STD_IOSTREAM -D_REENTRANT
}

openvms {
  // If you want to create shareable images, you can
  // set dll_ext to .exe using the -value_template option of MPC.
  versupport    =
  lib_prefix    =
  dll_ext       =
  exe_ext       = .exe
  ldlibs        = -lpthread
  extracppflags = -D__USE_STD_IOSTREAM -D_REENTRANT
}

linux {
  ldlibs        = -ldl -lpthread $(subst lib,-l,$(sort $(basename $(notdir $(wildcard /usr/lib/librt.so /lib/librt.so)))))
  extracppflags = -D_REENTRANT
}

solaris {
  shflags       = -G
  ldlibs        = -lsocket -ldl -lnsl -lgen -lposix4 -lthread
  extracppflags = -D_REENTRANT
}

hpux {
  dll_ext       = .sl
  ldlibs        = -lxti -lpthread -lrt -ldld
  extracppflags = -D_REENTRANT
}

aix {
  dll_ext       =
  ldlibs        = -ldl -lpthread
  extracppflags = -D_REENTRANT
}

irix {
  ldlibs  = -lsocket -lgen -lpthread
}

lynxos {
  dll_ext       =
  extracppflags = -D__NO_INCLUDE_WARN__ -mthreads -mminimal-toc
}

macos {
  dld     = libtool
  ranlib  = 1
  dll_ext = .dylib
  shflags = -dynamic
  ldlibs  = -lcc_dynamic -lstdc++ -lSystem -ldl
}

unixware {
  ldlibs        = -lsocket -ldl -lnsl -lgen -lposix4 -lthread
  extracppflags = -D_REENTRANT
}

qnx {
  ldlibs        = -lsocket
  extracppflags = -D__GCC_BUILTIN
}

vxworks {
  versupport    =
  dll_ext       =
  exe_ext       = .out
  specialscript = "for i in $$3; do for j in $$4; do i=`echo $$i | sed sa\^-laa`;[ -r \"$$j/lib$$i.a\" ] && libs=\"$$libs $$j/lib$$i.a\" && break;done;done;$$1 $$2 $$libs | munch | grep -v \\.cpp > $$5"
  prelink       = __ctordtor.c
  clean         = __ctordtor$(OBJEXT)
  ldlibs        = -L$(WIND_BASE)/target/lib/$(CPUTYPE)/$(CPU)/common -larch
  extracppflags = -nostdlib -I$(WIND_BASE)/target/h
  ld            = ld$(CPUTYPE)
  linkflags     = -X -r
}

vxworks_rtp {
  versupport    =
  dll_ext       =
  exe_ext       = .vxe
  extracppflags = -I$(WIND_BASE)/target/usr/h -I$(WIND_BASE)/target/usr/h/wrn/coreip -mrtp
  linkflags     = -L$(WIND_BASE)/target/usr/lib/$(CPUTYPE)/$(CPU)/common
}

cygwin {
  versupport =
  dll_ext    = .dll
  exe_ext    = .exe
  rc         = windres
  res_ext    = .o
}

mingw {
  versupport =
  lib_prefix =
  dll_ext    = .dll
  lib_ext    = .lib
  exe_ext    = .exe
  ldlibs     = -lwsock32 -lnetapi32
  rc         = rc
  devnull    = nul
  delete     = del /f/s/q
  type       = type
  copy       = copy /y
  makedir    = mkdir
  move       = move /y
}

dmc_win {
  versupport =
  lib_prefix =
  dll_ext    = .dll
  lib_ext    = .lib
  exe_ext    = .exe
  ldlibs     = wsock32+kernel32
  rc         = rc
  devnull    = nul
  delete     = del /f/s/q
  type       = type
  copy       = copy /y
  makedir    = mkdir
  move       = move /y
}

tandem {
  shflags       = -shared -all
  ldlibs        = -lsocket -ldl -lnsl -lgen -lthread
  extracppflags = -D_REENTRANT
}

// For Integrity, the following should be set as environment variables, on
// the make command line or within a verbatim section in your mpc file.
//
// GHSROOT     The full path to your Green Hills installation.
// RTOSROOT    The full path to your BSP installation (probably $GHSROOT).
// BSP         The BSP name (ex. sim800).
// TARGET_BSP  The full path to your target BSP.
// TARGET_LD   The full path to your target ld file.
//
integrity {
  versupport    =
  dll_ext       =
  ldlibs        = -lshm_client -lnet -livfssca -lposixsca
  extraarflags  = -bspname=$(RTOSROOT)/target/$(BSP).bld
  extracppflags = -integrate -dynamic -bspname=$(RTOSROOT)/target/$(BSP).bld -os_dir $(GHSROOT) -non_shared -Uvector -bspfile=$(TARGET_BSP) $(TARGET_LD)
}

conditional_include "user_makedll"