Changes:
    * Make ./configure generate src/config.h, which will contain the
      appropriate #include for endian.h, or #defines to provide
      alternatives
    * Make sure to include config.h in src/frame.c to allow compiling
      on macOS
		
	
			
		
			
				
	
	
		
			118 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#! /bin/sh
 | 
						|
 | 
						|
OS=`uname -s`
 | 
						|
DEBUG=0
 | 
						|
PREFIX=/usr/local
 | 
						|
 | 
						|
create_linux_config_h() {
 | 
						|
    cat <<EOF > src/config.h
 | 
						|
#ifndef _CONFIG_H
 | 
						|
#define _CONFIG_H
 | 
						|
#include <endian.h>
 | 
						|
#endif /* _CONFIG_H */
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
create_darwin_config_h() {
 | 
						|
    cat <<EOF > src/config.h
 | 
						|
#ifndef _CONFIG_H
 | 
						|
#define _CONFIG_H
 | 
						|
#include <libkern/OSByteOrder.h>
 | 
						|
 | 
						|
#define htobe16(n) OSSwapHostToBigInt16(n)
 | 
						|
#define htole16(n) OSSwapHostToLittleInt16(n)
 | 
						|
#define be16toh(n) OSSwapBigToHostInt16(n)
 | 
						|
#define le16toh(n) OSSwapLittleToHostInt16(n)
 | 
						|
 | 
						|
#define htobe32(n) OSSwapHostToBigInt32(n)
 | 
						|
#define htole32(n) OSSwapHostToLittleInt32(n)
 | 
						|
#define be32toh(n) OSSwapBigToHostInt32(n)
 | 
						|
#define le32toh(n) OSSwapLittleToHostInt32(n)
 | 
						|
 | 
						|
#define htobe64(n) OSSwapHostToBigInt64(n)
 | 
						|
#define htole64(n) OSSwapHostToLittleInt64(n)
 | 
						|
#define be64toh(n) OSSwapBigToHostInt64(n)
 | 
						|
#define le64toh(n) OSSwapLittleToHostInt64(n)
 | 
						|
#endif /* _CONFIG_H */
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
create_common_build_mk() {
 | 
						|
    if [ "$DEBUG" = 1 ]; then
 | 
						|
        cat <<'EOF' > mk/build.mk
 | 
						|
CGFLAGS		= -g -fno-inline
 | 
						|
EOF
 | 
						|
	else
 | 
						|
		cat <<'EOF' > mk/build.mk
 | 
						|
CGFLAGS		=
 | 
						|
EOF
 | 
						|
    fi
 | 
						|
 | 
						|
	cat <<'EOF' >> mk/build.mk
 | 
						|
CWFLAGS		= -Wall
 | 
						|
COFLAGS		= -O2
 | 
						|
CFLAGS		= $(CGFLAGS) $(CWFLAGS) $(COFLAGS)
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
create_linux_build_mk() {
 | 
						|
    create_common_build_mk $@
 | 
						|
 | 
						|
    cat <<'EOF' >> mk/build.mk
 | 
						|
LLFLAGS		= -shared -Wl,-soname=$(SONAME)
 | 
						|
 | 
						|
STATIC		= lib$(LIBNAME).a
 | 
						|
 | 
						|
SONAME_SHORT	= lib$(LIBNAME).so
 | 
						|
SONAME		= $(SONAME_SHORT).$(VERSION_MAJOR)
 | 
						|
SONAME_FULL	= $(SONAME_SHORT).$(VERSION)
 | 
						|
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF >> mk/build.mk
 | 
						|
PREFIX      = $PREFIX
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
create_darwin_build_mk() {
 | 
						|
    create_common_build_mk $@
 | 
						|
 | 
						|
    cat <<'EOF' >> mk/build.mk
 | 
						|
LLFLAGS		= -dynamiclib -current_version $(VERSION)
 | 
						|
 | 
						|
STATIC      = lib$(LIBNAME).a
 | 
						|
 | 
						|
SONAME_SHORT	= lib$(LIBNAME).dylib
 | 
						|
SONAME		= lib$(LIBNAME).$(VERSION_MAJOR).dylib
 | 
						|
SONAME_FULL	= lib$(LIBNAME).$(VERSION).dylib
 | 
						|
 | 
						|
EOF
 | 
						|
 | 
						|
    cat <<EOF >> mk/build.mk
 | 
						|
PREFIX      = $PREFIX
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
for arg in $@; do
 | 
						|
    case $arg in
 | 
						|
        "--enable-debug")
 | 
						|
            DEBUG=1
 | 
						|
        ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
if [ ! -d "mk" ]; then
 | 
						|
    mkdir -m 0755 mk
 | 
						|
fi
 | 
						|
 | 
						|
case $OS in
 | 
						|
    Linux)
 | 
						|
        create_linux_config_h
 | 
						|
		create_linux_build_mk
 | 
						|
    ;;
 | 
						|
 | 
						|
    Darwin)
 | 
						|
        create_darwin_config_h
 | 
						|
		create_darwin_build_mk
 | 
						|
    ;;
 | 
						|
esac
 |