Commit 6ca4b1b2 authored by Josh Coalson's avatar Josh Coalson
Browse files

add support for checking sizes of different types through configure and...

add support for checking sizes of different types through configure and dynamically generating include/FLAC/ordinals.h
parent 7c343cfb
# FLAC - Free Lossless Audio Codec
# Copyright (C) 2001 Josh Coalson
#
# This program is part of FLAC; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# GNU makefile fragment for emulating stuff normally done by configure
#
VERSION=\"1.0devel\"
ORDINALS_H = ../../include/FLAC/ordinals.h
$(ORDINALS_H): $(ORDINALS_H).in
sed \
-e 's/@FLaC__SIZE16@/short/g' \
-e 's/@FLaC__SIZE32@/int/g' \
-e 's/@FLaC__SIZE64@/long long/g' \
-e 's/@FLaC__USIZE16@/unsigned short/g' \
-e 's/@FLaC__USIZE32@/unsigned int/g' \
-e 's/@FLaC__USIZE64@/unsigned long long/g' \
$< > $@
......@@ -30,13 +30,15 @@ PROGRAM = $(BINPATH)/$(PROGRAM_NAME)
all : release
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=\"1.0devel\" $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -DVERSION=\"1.0devel\" $(DEFINES) $(INCLUDES)
include ../../build/config.mk
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
LFLAGS = -L$(LIBPATH)
debug : $(PROGRAM)
release : $(PROGRAM)
debug : $(ORDINALS_H) $(PROGRAM)
release : $(ORDINALS_H) $(PROGRAM)
$(PROGRAM) : $(OBJS)
$(LINK) -o $@ $(OBJS) $(LFLAGS) $(LIBS)
......
......@@ -29,13 +29,15 @@ DYNAMIC_LIB = $(LIBPATH)/$(LIB_NAME).so
all : release
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=\"1.0devel\" $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -DVERSION=\"1.0devel\" $(DEFINES) $(INCLUDES)
include ../../build/config.mk
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
LFLAGS = -L$(LIBPATH)
debug : $(STATIC_LIB) $(DYNAMIC_LIB)
release : $(STATIC_LIB) $(DYNAMIC_LIB)
debug : $(ORDINALS_H) $(STATIC_LIB) $(DYNAMIC_LIB)
release : $(ORDINALS_H) $(STATIC_LIB) $(DYNAMIC_LIB)
$(STATIC_LIB) : $(OBJS)
$(LINK) $@ $(OBJS)
......@@ -53,7 +55,7 @@ $(DYNAMIC_LIB) : $(OBJS)
.PHONY : clean
clean :
-rm -f $(OBJS) $(STATIC_LIB) $(DYNAMIC_LIB)
-rm -f $(OBJS) $(STATIC_LIB) $(DYNAMIC_LIB) $(ORDINALS_H)
.PHONY : depend
depend:
......
......@@ -73,6 +73,56 @@ if test -n "$NASM" ; then
AC_DEFINE(FLAC__HAS_NASM)
fi
dnl Check for type sizes
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
case 2 in
$ac_cv_sizeof_short) FLaC__SIZE16="short" ; FLaC__USIZE16="unsigned short";;
$ac_cv_sizeof_int) FLaC__SIZE16="int" ; FLaC__USIZE16="unsigned int";;
esac
case 4 in
$ac_cv_sizeof_short) FLaC__SIZE32="short" ; FLaC__USIZE32="unsigned short";;
$ac_cv_sizeof_int) FLaC__SIZE32="int" ; FLaC__USIZE32="unsigned int";;
$ac_cv_sizeof_long) FLaC__SIZE32="long" ; FLaC__USIZE32="unsigned long";;
esac
case 8 in
$ac_cv_sizeof_int) FLaC__SIZE64="int" ; FLaC__USIZE64="unsigned int";;
$ac_cv_sizeof_long) FLaC__SIZE64="long" ; FLaC__USIZE64="unsigned long";;
$ac_cv_sizeof_long_long) FLaC__SIZE64="long long" ; FLaC__USIZE64="unsigned long long";;
esac
if test -z "$FLaC__SIZE16"; then
AC_MSG_ERROR(No 16 bit type found on this platform!)
fi
if test -z "$FLaC__USIZE16"; then
AC_MSG_ERROR(No unsigned 16 bit type found on this platform!)
fi
if test -z "$FLaC__SIZE32"; then
AC_MSG_ERROR(No 32 bit type found on this platform!)
fi
if test -z "$FLaC__USIZE32"; then
AC_MSG_ERROR(No unsigned 32 bit type found on this platform!)
fi
if test -z "$FLaC__SIZE64"; then
AC_MSG_WARN(No 64 bit type found on this platform!)
fi
if test -z "$FLaC__USIZE64"; then
AC_MSG_ERROR(No unsigned 64 bit type found on this platform!)
fi
AC_SUBST(FLaC__SIZE16)
AC_SUBST(FLaC__USIZE16)
AC_SUBST(FLaC__SIZE32)
AC_SUBST(FLaC__USIZE32)
AC_SUBST(FLaC__SIZE64)
AC_SUBST(FLaC__USIZE64)
CFLAGS='-I./include -I $(top_srcdir)/include -Wall -W'
if test x$debug = xtrue; then
CFLAGS="$CFLAGS -g -O0 -DDEBUG"
......@@ -94,5 +144,6 @@ AC_OUTPUT( Makefile \
src/test_unit/Makefile \
include/Makefile \
include/FLAC/Makefile \
include/FLAC/ordinals.h \
test/Makefile \
)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment