#!/usr/bin/env sh # Copyright (c) 2007-2018. The SimGrid Team. # All rights reserved. # This program is free software; you can redistribute it and/or modify it # under the terms of the license (GNU LGPL) which comes with this package. SIMGRID_VERSION="@SIMGRID_VERSION_STRING@" SIMGRID_GITHASH="@SIMGRID_GITHASH@" CC=@CMAKE_C_COMPILER@ INCLUDEARGS="@includeflag@" CMAKE_LINKARGS="-L@libdir@" @SMPITOOLS_SH@ list_set CFLAGS list_set LINKARGS "-lm" if [ "x@WIN32@" = "x1" ]; then list_add CFLAGS "-include" "@includedir@/smpi/smpi_main.h" list_add LINKARGS "@libdir@\libsimgrid.dll" elif [ "x@APPLE@" = "x1" ]; then list_add CFLAGS "-include" "@includedir@/smpi/smpi_helpers.h" list_add CFLAGS "-fpic" if [ "x${SMPI_PRETEND_CC}" = "x" ]; then list_add LINKARGS "-shared" else echo "Warning: smpicc pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid." fi list_add LINKARGS "-lsimgrid" "-Wl,-undefined,error" else list_add CFLAGS "-include" "@includedir@/smpi/smpi_helpers.h" list_add CFLAGS "-fpic" if [ "x${SMPI_PRETEND_CC}" = "x" ]; then list_add LINKARGS "-shared" else echo "Warning: smpicc pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid." fi list_add LINKARGS "-lsimgrid" "-Wl,-z,defs" fi list_set CMDARGS while [ $# -gt 0 ]; do ARG="$1" shift case "${ARG}" in -c) CMAKE_LINKARGS="" LINKARGS="" list_add CMDARGS "-c" ;; *.c) SRCFILE="$(readlink -f ${ARG} 2>/dev/null)" if [ -z "$SRCFILE" ] ; then SRCFILE="$ARG" fi list_add CMDARGS "${SRCFILE}" ;; '-version' | '--version') printf '%b\n' "$SIMGRID_VERSION" exit 0 ;; "-git-version" | "--git-version") printf '%b\n' "$SIMGRID_GITHASH" exit 0 ;; '-trace-call-location') list_add_not_empty CMDARGS "-DTRACE_CALL_LOCATION" ;; '-compiler-version' | '--compiler-version') ${CC} --version ;; *) list_add CMDARGS "${ARG}" ;; esac done list_set CMDLINE "${CC}" list_add_not_empty CMDLINE "${CFLAGS}" list_add_not_empty CMDLINE ${INCLUDEARGS} list_add_not_empty CMDLINE ${CMAKE_LINKARGS} list_add_not_empty CMDLINE "${CMDARGS}" list_add_not_empty CMDLINE "${LINKARGS}" eval $(list_get CMDLINE) "$@"