AC_INIT(paraslash, [git], maan@systemlinux.org)
AC_CONFIG_HEADER([config.h])
-########################################################################### generic
+AC_PATH_PROG(UNAMEPATH, uname, no)
+if test "$UNAMEPATH" = "no"; then
+ AC_MSG_ERROR(unable to determine system type)
+fi
+AC_MSG_CHECKING(os type)
+OSTYPE="`$UNAMEPATH -s`"
+AC_MSG_RESULT("$OSTYPE")
+
+AC_C_BIGENDIAN()
+
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
+
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h stdlib.h \
- string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h sys/ipc.h unistd.h utime.h], \
+AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \
+ stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \
+ sys/ipc.h unistd.h utime.h stddef.h],
[], [AC_MSG_ERROR([$ac_header not found])])
AC_CHECK_HEADER(linux/soundcard.h, [extras="$extras para_fade"],
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
+AC_C_INLINE
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
+AC_TYPE_INT16_T
+AC_TYPE_MODE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_STAT
AC_FUNC_STRFTIME
AC_FUNC_VPRINTF
+AC_FUNC_CLOSEDIR_VOID
+AC_FUNC_LSTAT
+
AC_CHECK_FUNCS([atexit dup2 gethostbyname inet_ntoa memchr memmove memset \
- regcomp select socket strchr strdup strerror strstr strtol uname], [],
+ regcomp select socket strchr strdup strerror strstr strtol uname \
+ fchdir gettimeofday localtime_r munmap strcasecmp strcspn \
+ strncasecmp strrchr strspn alarm], [],
[AC_MSG_ERROR([function not found, cannot live without it])])
########################################################################### curses
AC_CHECK_LIB([ncurses], [initscr], [],
audiod_audio_formats=""
server_cmdline_objs="server.cmdline server_command_list random_selector_command_list
- playlist_selector_command_list"
+ playlist_selector_command_list afs_command_list"
server_errlist_objs="server mp3_afh vss command net string signal random_selector
- time daemon stat crypt http_send db close_on_fork playlist_selector
- ipc dccp dccp_send fd user_list"
+ time daemon stat crypt http_send afs_common close_on_fork playlist_selector
+ ipc dccp dccp_send fd user_list chunk_queue afs osl aft mood score attribute
+ blob playlist sha1 rbtree sched"
server_ldflags=""
server_audio_formats=" mp3"
write_errlist_objs="write write_common file_write time fd string sched stdin"
write_ldflags=""
writers=" file"
+default_writer="FILE_WRITE"
client_cmdline_objs="client.cmdline"
client_errlist_objs="client net string crypt fd sched stdin stdout client_common"
client_ldflags=""
+fsck_cmdline_objs="fsck.cmdline"
+fsck_errlist_objs="osl rbtree fsck string sha1 fd"
+
+
########################################################################### ssl
dnl @synopsis CHECK_SSL
dnl
server_ldflags="$srver_ldflags $SSL_LDFLAGS $SSL_LIBS"
client_ldflags="$client_ldflags $SSL_LDFLAGS $SSL_LIBS"
audiod_ldflags="$audiod_ldflags $SSL_LDFLAGS $SSL_LIBS"
+fsck_ldflags="$fsck_ldflags $SSL_LDFLAGS $SSL_LIBS"
########################################################################### ucred
AC_MSG_CHECKING(for struct ucred)
write_cmdline_objs="$write_cmdline_objs osx_write.cmdline"
write_ldflags="$write_ldflags $f"
writers="$writers osx"
+ default_writer="OSX_WRITE"
AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
fi
########################################################################### gtk2
if test "$have_ogg" = "yes"; then
AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg vorbis support)
filters="$filters oggdec"
+ if test "$OSTYPE" = "Darwin"; then
+ oggvorbis_libs="-Wl,-bind_at_load $oggvorbis_libs"
+ fi
server_ldflags="$server_ldflags $oggvorbis_libs -logg -lvorbis -lvorbisfile"
filter_ldflags="$filter_ldflags $oggvorbis_libs -lvorbis -lvorbisfile"
audiod_ldflags="$audiod_ldflags $oggvorbis_libs -lvorbis -lvorbisfile"
write_cmdline_objs="$write_cmdline_objs alsa_write.cmdline"
write_ldflags="$write_ldflags -lasound"
writers="$writers alsa"
+ default_writer="ALSA_WRITE"
fi
CPPFLAGS="$OLD_CPPFLAGS"
LDFLAGS="$OLD_LDFLAGS"
server_objs="$server_cmdline_objs $server_errlist_objs"
write_objs="$write_cmdline_objs $write_errlist_objs"
client_objs="$client_cmdline_objs $client_errlist_objs"
+fsck_objs="$fsck_cmdline_objs $fsck_errlist_objs"
audioc_objs="$audioc_cmdline_objs $audioc_errlist_objs"
AC_SUBST(recv_objs, add_dot_o($recv_objs))
AC_DEFINE_UNQUOTED(INIT_CLIENT_ERRLISTS,
objlist_to_errlist($client_errlist_objs), errors used by para_client)
+AC_SUBST(fsck_objs, add_dot_o($fsck_objs))
+AC_SUBST(fsck_ldflags, $fsck_ldflags)
+AC_DEFINE_UNQUOTED(INIT_FSCK_ERRLISTS,
+ objlist_to_errlist($fsck_errlist_objs), errors used by para_fsck)
+
AC_SUBST(audioc_objs, add_dot_o($audioc_objs))
AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
enum="$(for i in $writers; do printf "${i}_WRITE, " | tr '[a-z]' '[A-Z]'; done)"
AC_DEFINE_UNQUOTED(WRITER_ENUM, $enum NUM_SUPPORTED_WRITERS,
enum of supported writers)
+AC_DEFINE_UNQUOTED(DEFAULT_WRITER, $default_writer, use this writer if none was specified)
names="$(for i in $writers; do printf \"$i\",' ' ; done)"
AC_DEFINE_UNQUOTED(WRITER_NAMES, $names, supported writer names)
inits="$(for i in $writers; do printf 'extern void '$i'_write_init(struct writer *); '; done)"