gorba
09-01-2007, 13:39
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:
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...
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:
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...