add support for checking sizes of different types through configure and dynamically generating include/FLAC/ordinals.h
This commit is contained in:
parent
7c343cfbcb
commit
6ca4b1b2b2
34
build/config.mk
Normal file
34
build/config.mk
Normal file
@ -0,0 +1,34 @@
|
||||
# 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' \
|
||||
$< > $@
|
10
build/exe.mk
10
build/exe.mk
@ -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)
|
||||
|
12
build/lib.mk
12
build/lib.mk
@ -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:
|
||||
|
51
configure.in
51
configure.in
@ -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 \
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user