--- rpl/scripts/mkrplso.in 2010/06/20 13:32:26 1.4 +++ rpl/scripts/mkrplso.in 2016/10/11 17:04:48 1.12 @@ -1,4 +1,4 @@ -#!/bin/bash +#!@BASH_PATH@ #=============================================================================== # RPL/2 version @VERSION@ @@ -53,6 +53,7 @@ PRESENCE_OPTION_STRIP=FAUX COMPILATION_SEULE=FAUX DRAPEAU=FAUX P=1 +RPLC_MAIN= for i in $@; do @@ -82,6 +83,16 @@ do if [ $i = "-c" ]; then COMPILATION_SEULE=VRAI fi + + if [ -e "$i" ]; then + if [ $(rplfile -m $(dirname $(which $0))/../share/rplfiles $i | \ + grep "C source" | wc -l) = 1 ]; then + if [ $(grep exportExternalFunctions $i | wc -l) = 1 ]; then + RPLC_MAIN=-D__RPLC_MAIN + fi + fi + fi + done if [ $PRESENCE_FICHIER_SORTIE = FAUX ]; then @@ -115,18 +126,31 @@ do P=$(($P+1)) done +if [ $(uname -o) = Cygwin ]; then + RELOC= +else + RELOC=-fPIC +fi + if [ $COMPILATION_SEULE = "VRAI" ]; then echo +++Compiler for RPL/2 version @VERSION@ - gfortran -x c $ARGUMENTS_G77 -fPIC -Wall -DRPLCONFIG $OPTIONS $CFLAGS\ + gfortran -x c $ARGUMENTS_G77 $RELOC -Wall -DRPLCONFIG $OPTIONS $CFLAGS\ -I$(which $0 | cut -d '/' -f -$(($P-1)))/include -funsigned-char\ - -D_d_version_rpl=\"@VERSION@\" -std=gnu99 + -D_d_version_rpl=\"@VERSION@\" -std=gnu99 $RPLC_MAIN else echo +++Linker for RPL/2 version @VERSION@ - gfortran $ARGUMENTS_G77 -shared -fPIC -Wall -DRPLCONFIG $OPTIONS $CFLAGS\ - -I$(which $0 | cut -d '/' -f -$(($P-1)))/include -funsigned-char + gfortran $ARGUMENTS_G77 -shared $RELOC -Wall -DRPLCONFIG $OPTIONS \ + $CFLAGS\ + -I$(which $0 | cut -d '/' -f -$(($P-1)))/include -funsigned-char\ + $RPLC_MAIN fi test $PRESENCE_OPTION_STRIP = VRAI && strip -s $FICHIER_SORTIE -chmod 644 $FICHIER_SORTIE + +if [ $(uname -o) = Cygwin ]; then + chmod 755 $FICHIER_SORTIE +else + chmod 644 $FICHIER_SORTIE +fi exit 0