Subversion Repositories gelsvn

Rev

Rev 107 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

// -*- MPC -*-
// $Id: makedll.mpt 198 2005-12-15 11:30:53Z bj $

// ***********************************************************************
// The default configuration for the 'make' project type is gcc.  This
// is controlled by the configurations 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 configurations=SunCC
// Use the default configuration (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 configurations=aCC
// ***********************************************************************

conditional_include "common"
conditional_include "unixcommon"

configurations   = gcc
obj_ext          = .o
compile_flags    =
arflags          =
pchsupport       = 1
targetoutdir     =
slash            = /
libopt           = -l
build64bit       = 1

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

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

cxx {
  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
}

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

SunCC {
  cxx             = CC
  pic             = -KPIC
  shflags         = -G
  compilerflags64 = -xarch=v9
  linkflags       = -library=Cstd -library=Crun
  clean           = SunWS_cache ir.out
  platforms       = solaris
}

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=
}

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
  ld            = ldppc
  cputype       = ppc
  cpu           = PPC604
  ar            = arppc
  nm            = nmppc
  compilerflags = -mlongcall -nostdlib
  linkflags     = -X -r
  platforms     = vxworks
}

wrspentium {
  cxx           = g++pentium
  ld            = ldpentium
  cputype       = pentium
  cpu           = PENTIUM
  ar            = arpentium
  nm            = nmpentium
  compilerflags = -nostdlib
  linkflags     = -X -r
  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 {
  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.
  lib_prefix    =
  dll_ext       =
  exe_ext       = .exe
  ldlibs        = -lpthread
  extracppflags = -D__USE_STD_IOSTREAM -D_REENTRANT
}

linux {
  ldlibs        = -ldl -lpthread
  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__
}

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 {
  dll_ext       =
  specialscript = "#!/bin/sh\nfor i in $$3; do\nfor j in $$4; do\ni=`echo $$i | sed sa\^-laa`\n[ -r \"$$j/lib$$i.a\" ] && libs=\"$$libs $$j/lib$$i.a\" && break\ndone\ndone\n$$1 $$2 $$libs | munch | grep -v \\.cpp > $$5"
  prelink       = __ctordtor.c
  ldlibs        = -L$(WIND_BASE)/target/lib/$(CPUTYPE)/$(CPU)/common -larch
  extracppflags = -I$(WIND_BASE)/target/h
}

cygwin {
  dll_ext = .dll
  exe_ext = .exe
  rc      = windres
}

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

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 {
  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"