- Add first rough cut of configure

Note that Makefile should go since it should be rebuilt from Makefile.in
  by configure.
- start_threads now has HAVE_ALSA_ALSASOUND_H
- ptt_unix now uses configure HAVE_SYS_PARAM_H

Initial *non production* commit
I am a little rusty with it, sorry. --db



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@58 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Diane Bruce 2006-01-07 20:14:23 +00:00
parent c6e3d2ec9a
commit 2c36b84bb5
9 changed files with 5348 additions and 27 deletions

View File

@ -1,22 +1,25 @@
#
# This part all goes away when configure is written
# working on it --db
#
gcc ?= CC
CC ?= cc
CC ?= gcc
FC ?= f77
FC ?= g77
FFLAGS = -O -Wall -fbounds-check
FFLAGS = -g -O2
#
# WSJT specific Fortran flags
FFLAGS += -Wall -fbounds-check
OS=FreeBSD
G95=/usr/local/bin/g95
COMPILER=/usr/local/lib/gcc-lib/i386-unknown-freebsd5.4/4.0.1/
#OS=Linux
#G95=/usr/bin/g95
#COMPILER=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/
PYTHON ?= python
F2PY = "f2py.py"
# done to about here (when configure is written)
PYTHON ?= /usr/local/bin/python
RM ?= /bin/rm
F2PY = /usr/local/bin/f2py
F2PY_PY = "f2py.py"
OBJS1 = JT65code.o nchar.o grid2deg.o packmsg.o packtext.o \
packcall.o packgrid.o unpackmsg.o unpacktext.o unpackcall.o \
@ -30,11 +33,8 @@ SRCS0= init_rs.c encode_rs.c decode_rs.c
JT65SRCS = JT65code_all.f igray.o wrapkarn.o init_rs.o encode_rs.o decode_rs.o
#all: JT65code
all: JT65code
#Audio.so
JT65code_demo: $(OBJS1)
$(FC) -o JT65code_demo $(OBJS1)
@ -61,7 +61,7 @@ decode_rs_int.o: decode_rs.c
$(CC) -c -DBIGSYM=1 -o decode_rs_int.o decode_rs.c
Audio.so: $(OBJS0)
${PYTHON} ${F2PY} -c --quiet --opt="-O -cpp -D${OS} \
${PYTHON} ${F2PY_PY} -c --quiet --opt="-O -cpp -D${OS} \
-fno-second-underscore" init_rs.o encode_rs.o decode_rs.o -m Audio \
--f77exec=${G95} --f90exec=${G95} -L${COMPILER} -lpthread -lg2c \
only: ftn_init ftn_quit audio_init spec getfile azdist0 astro0 \
@ -70,9 +70,9 @@ Audio.so: $(OBJS0)
ftn_quit.f90 get_fname.f90 getfile.f90 horizspec.f90 hscroll.f90 \
i1tor4.f90 pix2d.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 \
wsjtgen.f90 runqqq.f90 wsjt1.f fsubs1.f fsubs.f astro.f astropak.f \
jtaudio.c ptt_unix.c igray.c wrapkarn.c start_threads.c cutil.c \
jtaudio.c ptt_bsd.c igray.c wrapkarn.c start_threads.c cutil.c \
fivehz.f90
.PHONY : clean
clean:
rm -f *.o *.so JT65code JT65code_demo
${RM} -f *.o *.so JT65code JT65code_demo

48
conf.h.in Normal file
View File

@ -0,0 +1,48 @@
/* setup.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to 1 if string.h may be included along with strings.h */
#undef STRING_WITH_STRINGS
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* This is needed to use strtok_r on Solaris. */
#undef __EXTENSIONS__
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#undef inline
#endif
/* Define to `long long' if <sys/types.h> does not define. */
#undef int64_t
/* If system does not define sa_family_t, define it here. */
#undef sa_family_t
/* If we don't have a real socklen_t, unsigned int is good enough. */
#undef socklen_t
/* If system does not define u_int16_t, define a usable substitute. */
#undef u_int16_t
/* If system does not define u_int32_t, define to unsigned long int here. */
#undef u_int32_t
/* Define to `unsigned long long' if <sys/types.h> does not define. */
#undef uint64_t
#undef HAVE_ALSA_ALSASOUND_H
#undef HAVE_SYS_SOUNDCARD_H
#undef HAVE_AUDIOFILE_H

5091
configure vendored Executable file

File diff suppressed because it is too large Load Diff

167
configure.ac Normal file
View File

@ -0,0 +1,167 @@
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
dnl AC_PREREQ(2.59)
dnl Sneaky way to get an Id tag into the configure script
AC_COPYRIGHT([$Id$])
AC_INIT([wsjt],[0.9])
AC_CONFIG_HEADER(conf.h)
AC_PREFIX_DEFAULT(/usr/local/)
OLD_CFLAGS="$CFLAGS"
dnl Checks for programs.
AC_PROG_CC
AC_LANG(C)
AC_PROG_F77
dnl Make sure autoconf doesn't interfere with cflags -jmallett
CFLAGS="$OLD_CFLAGS"
AC_MSG_CHECKING([uname -s for Cygwin, Solaris or HPUX])
case `uname -s` in
CYGWIN*)
AC_MSG_RESULT(Cygwin)
CYGWIN=yes
;;
SunOS*)
AC_MSG_RESULT(SunOS or Solaris)
AC_DEFINE(__EXTENSIONS__, 1, [This is needed to use strtok_r on Solaris.])
;;
*)
AC_MSG_RESULT(no)
;;
esac
if test "$ac_cv_c_compiler_gnu" = yes; then
AC_MSG_CHECKING(if $CC is Apple GCC)
if expr "`$CC -v 2>&1 | tail -1`" : ".*Apple" >/dev/null; then
AppleGCC=yes
else
AppleGCC=no
fi
AC_MSG_RESULT($AppleGCC)
WSJT_CFLAGS="$WSJT_CFLAGS -Wall -O0"
fi
dnl If we support -g, use it!
if test "$ac_cv_prog_cc_g" = yes; then
WSJT_CFLAGS="$WSJT_CFLAGS -g"
fi
dnl jdc -- If CFLAGS is defined, best use it everywhere...
dnl NOTE: jv says it must be added to the *END*, because things like
dnl "gcc -O9 -O2" will result in -O2 getting preference. How stupid.
if test ! -z "$CFLAGS"; then
WSJT_CFLAGS="$WSJT_CFLAGS $CFLAGS"
fi
AC_ISC_POSIX
AC_C_INLINE
AC_PROG_GCC_TRADITIONAL
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PATH_PROG(RM, rm)
AC_PATH_PROG(CP, cp)
AC_PATH_PROG(MV, mv)
AC_PATH_PROG(LN, ln)
AC_PATH_PROG(SED, sed)
AC_PATH_PROG(AR, ar)
AC_PATH_PROG(LD, ld)
AC_PATH_PROG(TEST, [test], [test])
AC_PATH_PROG(PYTHON, python)
AC_PATH_PROG(F2PY, f2py)
AC_PATH_PROG(G95, g95)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([crypt.h inttypes.h stdint.h sys/resource.h sys/param.h errno.h sys/syslog.h stddef.h libgen.h sys/wait.h wait.h link.h sys/soundcard.h linux/soundcard.h alsa/alsasound.h audiofile.h])
dnl use directory structure of cached as default (hack)
if test "$libexecdir" = '${exec_prefix}/libexec' &&
test "$localstatedir" = '${prefix}/var'; then
libexecdir='${bindir}'
localstatedir='${prefix}'
fi
dnl See whether we can include both string.h and strings.h.
AC_CACHE_CHECK([whether string.h and strings.h may both be included],
gcc_cv_header_string,
[
AC_COMPILE_IFELSE(
[#include <string.h>
#include <strings.h>],
[gcc_cv_header_string=yes],
[gcc_cv_header_string=no])
])
if test "$gcc_cv_header_string" = "yes"; then
AC_DEFINE(STRING_WITH_STRINGS, 1, [Define to 1 if string.h may be included along with strings.h])
fi
AC_C_BIGENDIAN
dnl Check for stdarg.h - if we can't find it, halt configure
AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - wsjt will not compile without it **])])
dnl Checks for the existence of strlcat, strlcpy, basename...
dnl This more reliable test only works with gcc though.
AC_SUBST(SNPRINTF_C)
dnl Debug-related options
dnl =====================
AC_ARG_ENABLE(clobber,
AC_HELP_STRING([--enable-clobber], [Don't preserve old binaries on make install]),
[clobber=$enableval], [clobber=no])
if test "$clobber" = yes; then
AC_SUBST(CLOBBER, yes)
fi
AC_ARG_ENABLE(assert,
AC_HELP_STRING([--enable-assert],[Enable assert().]),
[assert=$enableval], [assert=no])
if test "$assert" = no; then
AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
fi
AC_SUBST(WSJT_CFLAGS)
if test "$prefix" = "NONE"; then
AC_DEFINE_UNQUOTED(WSJT_PREFIX, "$ac_default_prefix", [Prefix where wsjt is installed.])
else
dnl Don't get bitten by Cygwin's stupidity if the user specified
dnl a custom prefix with a trailing slash
prefix=`echo $prefix | sed 's/\/$//'`
AC_DEFINE_UNQUOTED(WSJT_PREFIX, "$prefix", [Prefix where wsjt is installed.])
fi
AC_CONFIG_FILES( \
Makefile
)
AC_OUTPUT
echo
echo "Compiling $PACKAGE_NAME $PACKAGE_VERSION"
echo
echo "Installing into: $prefix"
echo

11
cutil.c
View File

@ -45,11 +45,12 @@ int buf[];
return (times(buf));
}
/* ioperm(2) */
ioperm_(from,num,turn_on)
unsigned long *from,*num,*turn_on;
{
return (ioperm(*from,*num,*turn_on));
}
//ioperm_(from,num,turn_on)
//unsigned long *from,*num,*turn_on;
//{
// return (ioperm(*from,*num,*turn_on));
// return (i386_get_ioperm(*from,*num,*turn_on));
//}
/* usleep(3) */
usleep_(microsec)

6
g1
View File

@ -1,5 +1,5 @@
G95=/usr/bin/g95
COMPILER=//usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/
python f2py.py -c --quiet --opt="-O -cpp -DLinux -fno-second-underscore" init_rs.o encode_rs.o decode_rs.o -m Audio --f77exec=$G95 --f90exec=$G95 -L$COMPILER -lpthread -lg2c -lasound only: ftn_init ftn_quit audio_init spec getfile azdist0 astro0 : a2d.f90 abc441.f90 astro0.f90 audio_init.f90 azdist0.f90 blanker.f90 decode1.f90 decode2.f90 decode3.f90 ftn_init.f90 ftn_quit.f90 get_fname.f90 getfile.f90 horizspec.f90 hscroll.f90 i1tor4.f90 pix2d.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 wsjtgen.f90 runqqq.f90 wsjt1.f fsubs1.f fsubs.f astro.f astropak.f jtaudio.c ptt_linux.c igray.c wrapkarn.c start_threads.c cutil.c fivehz.f90
G95=/usr/local/bin/g95
COMPILER=//usr/local/lib/gcc-lib/i386-unknown-freebsd5.4/4.0.1/
python f2py.py -c --quiet --opt="-O -cpp -DFreeBSD -fno-second-underscore" init_rs.o encode_rs.o decode_rs.o -m Audio --f77exec=$G95 --f90exec=$G95 -L$COMPILER -lpthread -lg2c only: ftn_init ftn_quit audio_init spec getfile azdist0 astro0 : a2d.f90 abc441.f90 astro0.f90 audio_init.f90 azdist0.f90 blanker.f90 decode1.f90 decode2.f90 decode3.f90 ftn_init.f90 ftn_quit.f90 get_fname.f90 getfile.f90 horizspec.f90 hscroll.f90 i1tor4.f90 pix2d.f90 pix2d65.f90 rfile.f90 savedata.f90 spec.f90 wsjtgen.f90 runqqq.f90 wsjt1.f fsubs1.f fsubs.f astro.f astropak.f jtaudio.c ptt_bsd.c igray.c wrapkarn.c start_threads.c cutil.c fivehz.f90

2
go
View File

@ -1,3 +1,3 @@
gcc -c wrapkarn.c
gcc -c igray.c
g95 -o JT65code -fno-second-underscore JT65code_all.f igray.o wrapkarn.o init_rs.o encode_rs.o decode_rs.o
f77 -o JT65code -fno-second-underscore JT65code_all.f igray.o wrapkarn.o init_rs.o encode_rs.o decode_rs.o

View File

@ -7,8 +7,9 @@
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include "conf.h" /* XXX Could use CFLAGS later instead --db */
#if (defined(__unix__) || defined(unix)) && !defined(USG)
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif

View File

@ -1,10 +1,21 @@
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include "conf.h"
/* XXX Change to
* #if defined(WANT_ALSA) && defined(HAVE_ALSA_ALSASOUND_H)
* when configure is done with options --db
*/
#ifdef HAVE_ALSA_ALSASOUND_H
#include <alsa/asoundlib.h>
#endif
#include <inttypes.h>
#include <time.h>
#ifdef HAVE_ALSA_ALSASOUND_H
#if 1
#define ALSA_LOG
#define ALSA_LOG_BUFFERS
@ -490,7 +501,7 @@ void ao_alsa_loop(void *iarg) {
return;
}
#endif
extern void decode1_(int *iarg);
int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
@ -505,6 +516,7 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
int iarg1 = 1,iarg2 = 2;
//int32_t rate=11025;
int32_t rate=*nfsample;
#ifdef HAVE_ALSA_ALSASOUND_H
alsa_driver_capture.app_buffer_y1 = y1;
alsa_driver_capture.app_buffer_y2 = y2;
alsa_driver_capture.app_buffer_offset = iwrite;
@ -521,9 +533,10 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
alsa_driver_playback.nmode = nmode;
alsa_driver_playback.transmitting = Transmitting;
alsa_driver_playback.ndsec = ndsec;
#endif
printf("start threads called\n");
iret1 = pthread_create(&thread1,NULL,decode1_,&iarg1);
#ifdef HAVE_ALSA_ALSASOUND_H
/* Open audio card. */
ao_alsa_open(&alsa_driver_playback, &rate, SND_PCM_STREAM_PLAYBACK);
ao_alsa_open(&alsa_driver_capture, &rate, SND_PCM_STREAM_CAPTURE);
@ -539,5 +552,5 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
/* snd_pcm_start */
//iret2 = pthread_create(&thread2,NULL,a2d_,&iarg2);
#endif
}