Anzeige:
Ergebnis 1 bis 3 von 3

Thema: makefile

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88

    makefile

    Hallo

    Ich habe ein c Projekt das mit multicasts arbeitet unter linux geschriben. Da ms völlig andere FUnktionen dafür hatt, habe ich es unter linux mit mingw32 übersetzt. Für alle die es unter windows benützen wollen -.-

    Nun habe ich ein Problem, dass ich nicht in der Lage bin, ein makefile dazu zu schreiben...

    deshalb habe ich ein kleinen shell script dazu geschriben, dass wie folgt aussieht:

    Code:
    basename="${0##*/}"
    basename="${basename%.*}"
    function usage() {
    
    	echo "usage: $basename platform"
    }
    
    if [ $# -eq 0 ] ; then
    	usage
    	exit 1
    fi
    
    CCFLAGS="-I."
    case "$1" in
    	win|windows)
    		CC=i586-mingw32msvc-gcc
    		CCFLAGS="$CCFLAGS -mconsole -mwindows"
    		LDFLAGS="-lws2_32 -lwsock32"
    		EXTENTION=".exe"
    		;;
    	linux)
    		CC=gcc
    		CCFLAGS="$CCFLAGS -g  "
    		#CCFLAGS="$CCFLAGS -DNDEBUG "
    		LDFLAGS=" "
    		EXTENTION=""
    		;;
    	clean)
    		for f in  *.o *.bin probe probe.exe ; do
    			if [ -e $f ] ; then
    				echo deleting $f
    				rm $f
    			fi
    		done
    		exit 0
    		;;
    	*)
    		usage
    		exit 1
    		;;
    esac
    
    echo "CC=$CC"
    echo "CCFLAGS=$CCFLAGS"
    
    objects=""
    
    for c_file in probe.c tools.c sample_file.c mcast_cross.c buffers.c rtp_hdr.c rtcp_hdr.c main.c file_parser.c main_jitter.c probe_dump.c sample_file.c session_dump.c; do
    	obj_file="${c_file%.c}.o"
    	echo "$CC $CCFLAGS -o $obj_file -c $c_file"
    	$CC $CCFLAGS -g -o $obj_file -c $c_file
    done
    echo "Linking Targets ..."
    echo "Probe ..."
    echo $CC $CCFLAGS -o probe"${EXTENTION}" probe.o tools.o sample_file.o mcast_cross.o  buffers.o$LDFLAGS
    echo $CC $CCFLAGS -o analyzer"${EXTENTION}" main.o rtp_hdr.o file_parser.o probe_dump.o sample_file.o tools.o buffers.o rtcp_hdr.o session_dump.o main_jitter.o  $LDFLAGS
    $CC $CCFLAGS -o probe"${EXTENTION}" probe.o tools.o sample_file.o mcast_cross.o buffers.o  $LDFLAGS
    $CC $CCFLAGS -o session"${EXTENTION}" main.o rtp_hdr.o file_parser.o probe_dump.o sample_file.o tools.o buffers.o rtcp_hdr.o session_dump.o main_session.o  $LDFLAGS
    $CC $CCFLAGS -o jitter"${EXTENTION}" main.o rtp_hdr.o file_parser.o probe_dump.o sample_file.o tools.o buffers.o rtcp_hdr.o session_dump.o main_jitter.o  $LDFLAGS
    
    exit
    kann man so was ähnliches auch mit nem makefile? Ich bring das nicht hin...
    /* -->
    RTFM
    <-- */

  2. #2
    Registrierter Benutzer Avatar von Detrius
    Registriert seit
    09.03.2004
    Ort
    Altena
    Beiträge
    64
    Wo hapert es denn?

    Bei den case-Sachen?
    http://www.gnu.org/software/make/man...l#Conditionals

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88
    genau.

    ifeq ($(CC),gcc)
    $(CC) -o foo $(objects) $(libs_for_gcc)

    war schon alles was ich gebraucht habe.
    Thx
    /* -->
    RTFM
    <-- */

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •