]> git.mxchange.org Git - flightgear.git/commitdiff
Converting to Gnu autoconf system.
authorcurt <curt>
Fri, 3 Apr 1998 22:12:53 +0000 (22:12 +0000)
committercurt <curt>
Fri, 3 Apr 1998 22:12:53 +0000 (22:12 +0000)
Centralized time handling differences.

Time/Makefile [deleted file]
Time/Makefile.am [new file with mode: 0644]
Time/Makefile.in [new file with mode: 0644]
Time/event.c
Time/fg_time.c
Time/fg_time.h
Time/fg_timer.c
Time/sunpos.c

diff --git a/Time/Makefile b/Time/Makefile
deleted file mode 100644 (file)
index 6de01e6..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#---------------------------------------------------------------------------
-# Makefile
-#
-# Written by Curtis Olson, started May 1997.
-#
-# Copyright (C) 1997  Curtis L. Olson  - curt@infoplane.com
-#
-# This program is free software; 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# $Id$
-# (Log is kept at end of this file)
-#---------------------------------------------------------------------------
-
-ARLIBRARY = libTime.a
-TARGETS = $(ARLIBRARY)
-
-CFILES = event.c fg_time.c fg_timer.c sunpos.c
-CXXFILES = 
-
-LDIRT = $(FG_ROOT_LIB)/$(ARLIBRARY)
-
-include $(FG_ROOT_SRC)/commondefs
-
-include $(COMMONRULES)
diff --git a/Time/Makefile.am b/Time/Makefile.am
new file mode 100644 (file)
index 0000000..181a7f6
--- /dev/null
@@ -0,0 +1,10 @@
+libdir = ${exec_prefix}/lib
+
+lib_LTLIBRARIES = libTime.la
+libTime_la_SOURCES = \
+       event.c \
+       fg_time.c \
+       fg_timer.c \
+       sunpos.c
+
+INCLUDES += -I..
diff --git a/Time/Makefile.in b/Time/Makefile.in
new file mode 100644 (file)
index 0000000..70082bb
--- /dev/null
@@ -0,0 +1,323 @@
+# Makefile.in generated automatically by automake 1.2h from Makefile.am
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DISTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+CC = @CC@
+CXX = @CXX@
+LD = @LD@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+NM = @NM@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+
+libdir = ${exec_prefix}/lib
+
+lib_LTLIBRARIES = libTime.la
+libTime_la_SOURCES = \
+       event.c \
+       fg_time.c \
+       fg_timer.c \
+       sunpos.c
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../Src/Include/config.h
+CONFIG_CLEAN_FILES = 
+LTLIBRARIES =  $(lib_LTLIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../../Src/Include
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_LIBS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+libTime_la_LDFLAGS = 
+libTime_la_LIBADD = 
+libTime_la_OBJECTS =  event.lo fg_time.lo fg_timer.lo sunpos.lo
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP = --best
+DEP_FILES =  .deps/event.P .deps/fg_time.P .deps/fg_timer.P \
+.deps/sunpos.P
+SOURCES = $(libTime_la_SOURCES)
+OBJECTS = $(libTime_la_OBJECTS)
+
+all: Makefile $(LTLIBRARIES)
+
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .s
+$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu Src/Time/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-libLTLIBRARIES:
+
+clean-libLTLIBRARIES:
+       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+
+distclean-libLTLIBRARIES:
+
+maintainer-clean-libLTLIBRARIES:
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+         if test -f $$p; then \
+           echo "$(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
+           $(LIBTOOL)  --mode=install $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
+         else :; fi; \
+       done
+
+uninstall-libLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+         $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+       done
+
+.s.o:
+       $(COMPILE) -c $<
+
+.S.o:
+       $(COMPILE) -c $<
+
+mostlyclean-compile:
+       -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+       -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+libTime.la: $(libTime_la_OBJECTS) $(libTime_la_DEPENDENCIES)
+       $(LINK) -rpath $(libdir) $(libTime_la_LDFLAGS) $(libTime_la_OBJECTS) $(libTime_la_LIBADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+       here=`pwd` && cd $(srcdir) \
+         && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)'; \
+       unique=`for i in $$list; do echo $$i; done | \
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+       -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = Src/Time
+
+distdir: $(DISTFILES)
+       here=`cd $(top_builddir) && pwd`; \
+       top_distdir=`cd $(top_distdir) && pwd`; \
+       distdir=`cd $(distdir) && pwd`; \
+       cd $(top_srcdir) \
+         && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Src/Time/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         test -f $(distdir)/$$file \
+         || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+         || cp -p $$d/$$file $(distdir)/$$file; \
+       done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+
+maintainer-clean-depend:
+       -rm -rf .deps
+
+%.o: %.c
+       @echo '$(COMPILE) -c $<'; \
+       $(COMPILE) -Wp,-MD,.deps/$(*F).P -c $<
+
+%.lo: %.c
+       @echo '$(LTCOMPILE) -c $<'; \
+       $(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<
+       @-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \
+         < .deps/$(*F).p > .deps/$(*F).P
+       @-rm -f .deps/$(*F).p
+info:
+dvi:
+check: all
+       $(MAKE)
+installcheck:
+install-exec: install-libLTLIBRARIES
+       @$(NORMAL_INSTALL)
+
+install-data: 
+       @$(NORMAL_INSTALL)
+
+install: install-exec install-data all
+       @:
+
+uninstall: uninstall-libLTLIBRARIES
+
+install-strip:
+       $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
+installdirs:
+       $(mkinstalldirs)  $(DATADIR)$(libdir)
+
+
+mostlyclean-generic:
+       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -rm -f Makefile $(DISTCLEANFILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+mostlyclean:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
+               mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+
+clean:  clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
+               clean-depend clean-generic mostlyclean
+
+distclean:  distclean-libLTLIBRARIES distclean-compile distclean-libtool \
+               distclean-tags distclean-depend distclean-generic clean
+       -rm -f config.status
+       -rm -f libtool
+
+maintainer-clean:  maintainer-clean-libLTLIBRARIES \
+               maintainer-clean-compile maintainer-clean-libtool \
+               maintainer-clean-tags maintainer-clean-depend \
+               maintainer-clean-generic distclean
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
+clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
+uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
+distclean-compile clean-compile maintainer-clean-compile \
+mostlyclean-libtool distclean-libtool clean-libtool \
+maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir mostlyclean-depend \
+distclean-depend clean-depend maintainer-clean-depend info dvi \
+installcheck install-exec install-data install uninstall all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+INCLUDES += -I..
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
index ffe7885f650af2136602c08f2d6c23ce73beba76..89d22026e06949fd8529228aea9ab42d4c63ab28 100644 (file)
  **************************************************************************/
 
 
+#include <config.h>
+
 #include <string.h>
 #include <stdio.h>
 
-#ifdef USE_FTIME
-#  include <stdlib.h>
-#  include <sys/timeb.h> /* for ftime() and struct timeb */
-#elif defined(__MWERKS__)
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if defined( HAVE_WINDOWS_H ) && defined(__MWERKS__)
 #  include <windows.h>  /* For Metrowerks environment */
 #  include <winbase.h>  /* There is no ANSI/MSL time function that */
                          /* contains milliseconds */
-#else
-#  include <sys/time.h>  /* for get/setitimer, gettimeofday, struct timeval */
-#endif /* USE_FTIME */
+#endif
 
+#include "fg_time.h"
 
 #include <Main/fg_debug.h>
 #include <Time/event.h>
@@ -54,21 +56,10 @@ struct fgEVENT {
     int status;       /* status flag */
 
     long interval;    /* interval in ms between each iteration of this event */
-                      
-#ifdef USE_FTIME
-    struct timeb last_run;    /* absolute time for last run */
-    struct timeb current;     /* current time */
-    struct timeb next_run;    /* absolute time for next run */
-#elif defined(__MWERKS__)
-    SYSTEMTIME last_run;      /* A type defed structure that holds */
-    SYSTEMTIME current;              /* the only structure that contains */
-    SYSTEMTIME next_run;      /* millisecond timing */
-#else
-    struct timeval last_run;  /* absolute time for last run */
-    struct timeval current;   /* current time */
-    struct timeval next_run;  /* absolute time for next run */
-    struct timezone tz;
-#endif /* USE_FTIME */
+
+    fg_timestamp last_run;
+    fg_timestamp current;
+    fg_timestamp next_run;
 
     long cum_time;    /* cumulative processor time of this event */
     long min_time;    /* time of quickest execution */
@@ -156,13 +147,7 @@ void fgEventRun(int ptr) {
     printf("Running %s\n", e->description);
 
     /* record starting time */
-#ifdef USE_FTIME
-    ftime(&e->last_run);
-#elif defined(__MWERKS__)
-    GetLocalTime(&e->last_run);
-#else
-    gettimeofday(&e->last_run, &e->tz);
-#endif /* USE_FTIME */
+    timestamp(&(e->last_run));
 
     /* run the event */
     (*e->event)();
@@ -174,20 +159,8 @@ void fgEventRun(int ptr) {
     e->status = FG_EVENT_READY;
 
     /* calculate duration and stats */
-#ifdef USE_FTIME
-    ftime(&e->current);
-    duration = 1000 * (e->current.time - e->last_run.time) + 
-       (e->current.millitm - e->last_run.millitm);
-#elif defined(__MWERKS__)
-    GetLocalTime(&e->current);
-    duration = 1000 * (e->current.wSecond - e->last_run.wSecond) + 
-       (e->current.wMilliseconds - e->last_run.wMilliseconds);
-#else
-    gettimeofday(&e->current, &e->tz);
-    duration = 1000000 * (e->current.tv_sec - e->last_run.tv_sec) + 
-       (e->current.tv_usec - e->last_run.tv_usec);
-    duration /= 1000;  /* convert back to milleseconds */
-#endif /* USE_FTIME */
+    timestamp(&(e->current));
+    duration = timediff(&(e->last_run), &(e->current));
 
     e->cum_time += duration;
 
@@ -200,20 +173,7 @@ void fgEventRun(int ptr) {
     }
 
     /* determine the next absolute run time */
-#ifdef USE_FTIME
-    e->next_run.time = e->last_run.time + 
-       (e->last_run.millitm + e->interval) / 1000;
-    e->next_run.millitm = (e->last_run.millitm + e->interval) % 1000;
-#elif defined(__MWERKS__)
-    e->next_run.wSecond = e->last_run.wSecond +
-       (e->last_run.wMilliseconds + e->interval) / 1000;
-    e->next_run.wMilliseconds = 
-       (e->last_run.wMilliseconds + e->interval) % 1000;
-#else
-    e->next_run.tv_sec = e->last_run.tv_sec +
-       (e->last_run.tv_usec + e->interval * 1000) / 1000000;
-    e->next_run.tv_usec = (e->last_run.tv_usec + e->interval * 1000) % 1000000;
-#endif /* USE_FTIME */
+    timesum(&(e->next_run), &(e->last_run), e->interval);
 }
 
 
@@ -306,57 +266,22 @@ void fgEventPrintStats( void ) {
 /* Add pending jobs to the run queue and run the job at the front of
  * the queue */
 void fgEventProcess( void ) {
-#ifdef USE_FTIME
-    struct timeb current;
-#elif defined(__MWERKS__)
-    SYSTEMTIME current;                /* current time */
-#else
-    struct timeval current;
-    struct timezone tz;
-#endif /* USE_FTIME */
+    fg_timestamp current;
     int i;
 
     fgPrintf(FG_EVENT, FG_DEBUG, "Processing events\n");
     
     /* get the current time */
-#ifdef USE_FTIME
-    ftime(&current);
-#elif defined(__MWERKS__)
-    GetLocalTime(&current);
-#else
-    gettimeofday(&current, &tz);
-#endif /* USE_FTIME */
+    timestamp(&current);
 
     /* printf("Checking if anything is ready to move to the run queue\n"); */
 
     /* see if anything else is ready to be placed on the run queue */
     for ( i = 0; i < event_ptr; i++ ) {
        if ( events[i].status == FG_EVENT_READY ) {
-#ifdef USE_FTIME
-           if ( current.time > events[i].next_run.time ) {
-               addq(i);
-           } else if ( (current.time == events[i].next_run.time) && 
-                       (current.millitm >= events[i].next_run.millitm) ) {
-               addq(i);
-           }
-#elif defined(__MWERKS__)
-           if (current.wSecond > events[i].next_run.wSecond) {
-               addq(i);
+           if ( 0 > timediff(&current,&(events[i].next_run)) ) {
+               addq(i);
            }
-           else if ( (current.wSecond == events[i].next_run.wSecond) && 
-                     (current.wMilliseconds >= 
-                      events[i].next_run.wMilliseconds)) {
-               addq(i);
-           }
-#else
-           if ( current.tv_sec > events[i].next_run.tv_sec ) {
-               addq(i);
-           } else if ( (current.tv_sec == events[i].next_run.tv_sec) && 
-                       (current.tv_usec >= events[i].next_run.tv_usec) ) {
-               addq(i);
-           }
-
-#endif /* USE_FTIME */
        }
     }
 
@@ -371,9 +296,13 @@ void fgEventProcess( void ) {
 
 
 /* $Log$
-/* Revision 1.10  1998/03/14 00:28:34  curt
-/* replaced a printf() with an fgPrintf().
+/* Revision 1.11  1998/04/03 22:12:55  curt
+/* Converting to Gnu autoconf system.
+/* Centralized time handling differences.
 /*
+ * Revision 1.10  1998/03/14 00:28:34  curt
+ * replaced a printf() with an fgPrintf().
+ *
  * Revision 1.9  1998/01/31 00:43:44  curt
  * Added MetroWorks patches from Carmen Volpe.
  *
index 8ac3c25dd716c81721a535ade47594e9d949e45c..b9eb89f309d21efcfcad8f7537a8889a09129553 100644 (file)
  **************************************************************************/
 
 
+#include <config.h>
+
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
 
-#ifdef USE_FTIME
+#ifdef HAVE_SYS_TIMEB_H
 #  include <sys/timeb.h> /* for ftime() and struct timeb */
-#else
+#endif
+#ifdef HAVE_UNISTD_H
 #  include <unistd.h>  /* for gettimeofday() */
+#endif
+#ifdef HAVE_SYS_TIME_H
 #  include <sys/time.h>  /* for get/setitimer, gettimeofday, struct timeval */
-#endif /* USE_FTIME */
+#endif
 
 #include <Time/fg_time.h>
 #include <Include/fg_constants.h>
@@ -61,6 +66,50 @@ void fgTimeInit(struct fgTIME *t) {
 }
 
 
+/* Portability wrap to get current time. */
+void timestamp(fg_timestamp *timestamp) {
+#if defined( HAVE_GETTIMEOFDAY )
+    struct timeval current;
+    struct timezone tz;
+    fg_timestamp currtime;
+    gettimeofday(&current, &tz);
+    timestamp->seconds = current.tv_sec;
+    timestamp->millis = current.tv_usec / 1000;
+#elif defined( HAVE_GETLOCALTIME )
+    SYSTEMTIME current;
+    GetLocalTime(&current);
+    timestamp->seconds = current.wSecond;
+    timestamp->millis = current.wMilliseconds;
+#elif defined( HAVE_FTIME )
+    struct timeb current;
+    ftime(&current);
+    timestamp->seconds = current.time;
+    timestamp->millis = current.millitm;
+#else
+# error Port me
+#endif
+}
+
+
+/* Return duration in millis from first to last */
+long timediff(fg_timestamp *first, fg_timestamp *last) {
+    return 1000 * (last->seconds - first->seconds) + 
+       (last->millis - first->millis);
+}
+
+
+/* Return new timestamp given a time stamp and an interval to add in */
+void timesum(fg_timestamp *res, fg_timestamp *start, long millis) {
+    res->millis = start->millis + millis;
+    if (1000 < res->millis) {
+       res->seconds = start->millis + 1;
+       res->millis -= 1000;
+    } else {
+       res->seconds = start->millis;
+    }
+}
+
+
 /* given a date in months, mn, days, dy, years, yr, return the
  * modified Julian date (number of days elapsed since 1900 jan 0.5),
  * mjd.  Adapted from Xephem.  */
@@ -168,7 +217,7 @@ double sidereal_course(struct tm *gmt, time_t now, double lng) {
     struct timeb current;
 #endif /* USE_FTIME */
 
-#ifdef WIN32
+#ifdef __CYGWIN32__
     int daylight;
     long int timezone;
 #endif /* WIN32 */
@@ -313,9 +362,13 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t) {
 
 
 /* $Log$
-/* Revision 1.36  1998/03/09 22:48:09  curt
-/* Debug message tweaks.
+/* Revision 1.37  1998/04/03 22:12:55  curt
+/* Converting to Gnu autoconf system.
+/* Centralized time handling differences.
 /*
+ * Revision 1.36  1998/03/09 22:48:09  curt
+ * Debug message tweaks.
+ *
  * Revision 1.35  1998/02/09 15:07:52  curt
  * Minor tweaks.
  *
index 0ac15110bae2da0ca954fd1bf6601c6b87e5f732..376fd7b499ccc6c42649aa2a5ddc6c8ce5d88be8 100644 (file)
@@ -28,9 +28,9 @@
 #define _FG_TIME_H
 
 
-#ifdef WIN32
-#  include <windows.h>
-#endif
+// #ifdef WIN32
+// #  include <windows.h>
+// #endif
 
 #include <GL/glut.h>
 #include <time.h>
@@ -87,6 +87,20 @@ struct fgLIGHT {
 
 extern struct fgLIGHT cur_light_params;
 
+typedef struct fg_timestamp_t {
+    long seconds;
+    long millis;
+} fg_timestamp;
+
+
+/* Portability wrap to get current time. */
+void timestamp(fg_timestamp *timestamp);
+
+/* Return duration in millis from first to last */
+long timediff(fg_timestamp *first, fg_timestamp *last);
+
+/* Return new timestamp given a time stamp and an interval to add in */
+void timesum(fg_timestamp *res, fg_timestamp *start, long millis);
 
 /* Initialize the time dependent variables */
 void fgTimeInit(struct fgTIME *t);
@@ -99,10 +113,14 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t);
 
 
 /* $Log$
-/* Revision 1.16  1998/02/07 15:29:47  curt
-/* Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
-/* <chotchkiss@namg.us.anritsu.com>
+/* Revision 1.17  1998/04/03 22:12:56  curt
+/* Converting to Gnu autoconf system.
+/* Centralized time handling differences.
 /*
+ * Revision 1.16  1998/02/07 15:29:47  curt
+ * Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
+ * <chotchkiss@namg.us.anritsu.com>
+ *
  * Revision 1.15  1998/01/27 00:48:06  curt
  * Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
  * system and commandline/config file processing code.
index 1cf5e660ff51c835c863996fa0858763bb06a087..e5536bcba2396f96bd1aab477bbbbff83825a885 100644 (file)
  **************************************************************************/
 
 
+#include <config.h>
+
 #include <signal.h>    /* for timer routines */
 #include <stdio.h>     /* for printf() */
 
-#ifdef USE_FTIME
-#  include <sys/timeb.h> /* for ftime() and struct timeb */
-#elif defined(__MWERKS__)
-#  include <windows.h> /* For Metrowerks environment */
-#  include <winbase.h> /* There is no ANSI/MSL time function that */
-                        /* contains milliseconds */
-#else
+#ifdef HAVE_SYS_TIME_H
 #  include <sys/time.h>  /* for get/setitimer, gettimeofday, struct timeval */
-#endif /* USE_FTIME */
+#endif
 
+#include <Time/fg_time.h>
 #include <Time/fg_timer.h>
 
 
 unsigned long int fgSimTime;
 
-#ifdef USE_ITIMER
+#ifdef HAVE_SETITIMER
   static struct itimerval t, ot;
   static void (*callbackfunc)(int multi_loop);
 
@@ -86,7 +83,7 @@ void fgTimerInit(float dt, void (*f)()) {
        exit(0);
     }
 }
-#endif /* HAVE_ITIMER */
+#endif /* HAVE_SETITIMER */
 
 
 /* This function returns the number of milleseconds since the last
@@ -94,49 +91,18 @@ void fgTimerInit(float dt, void (*f)()) {
 int fgGetTimeInterval( void ) {
     int interval;
     static int inited = 0;
-
-#ifdef USE_FTIME
-    static struct timeb last;
-    static struct timeb current;
-#elif defined (__MWERKS__)
-    SYSTEMTIME last;
-    SYSTEMTIME current;
-#else
-    static struct timeval last;
-    static struct timeval current;
-    static struct timezone tz;
-#endif /* USE_FTIME */
+    static fg_timestamp last;
+    fg_timestamp current;
 
     if ( ! inited ) {
        inited = 1;
-
-#ifdef USE_FTIME
-       ftime(&last);
-#elif defined (__MWERKS__)
-       GetLocalTime(&last);
-#else
-       gettimeofday(&last, &tz);
-#endif /* USE_FTIME */
-
+       timestamp(&last);
        interval = 0;
     } else {
-
-#ifdef USE_FTIME
-       ftime(&current);
-       interval = 1000 * (current.time - last.time) + 
-           (current.millitm - last.millitm);
-#elif defined (__MWERKS__)
-       GetLocalTime(&current);
-       interval = 1000 * (current.wSecond - last.wSecond) + 
-           (current.wMilliseconds - last.wMilliseconds);
-#else
-       gettimeofday(&current, &tz);
-       interval = 1000000 * (current.tv_sec - last.tv_sec) + 
-           (current.tv_usec - last.tv_usec);
-       interval /= 1000;  /* convert back to milleseconds */
-#endif /* USE_FTIME */
-
-       last = current;
+        timestamp(&current);
+       interval = timediff(&last, &current);
+       last.seconds = current.seconds;
+       last.millis = current.millis;
     }
 
     return(interval);
@@ -144,9 +110,13 @@ int fgGetTimeInterval( void ) {
 
 
 /* $Log$
-/* Revision 1.10  1998/01/31 00:43:45  curt
-/* Added MetroWorks patches from Carmen Volpe.
+/* Revision 1.11  1998/04/03 22:12:56  curt
+/* Converting to Gnu autoconf system.
+/* Centralized time handling differences.
 /*
+ * Revision 1.10  1998/01/31 00:43:45  curt
+ * Added MetroWorks patches from Carmen Volpe.
+ *
  * Revision 1.9  1998/01/19 19:27:21  curt
  * Merged in make system changes from Bob Kuehne <rpk@sgi.com>
  * This should simplify things tremendously.
index bdfd96610887b304ce2bc182ef4fdbf57f779c52..040df051dd7878e165e596de49a946a43a7445a3 100644 (file)
@@ -344,7 +344,7 @@ void fgUpdateSunPos( void ) {
 
     light = pow(1.1, -x_10 / 30.0);
     ambient = 0.2 * light;
-    diffuse = 0.9 * light;
+    diffuse = 1.0 * light;
 
     sky_brightness = 0.85 * pow(1.2, -x_8 / 20.0) + 0.15;
 
@@ -378,11 +378,15 @@ void fgUpdateSunPos( void ) {
 
 
 /* $Log$
-/* Revision 1.26  1998/02/23 19:08:00  curt
-/* Incorporated Durk's Astro/ tweaks.  Includes unifying the sun position
-/* calculation code between sun display, and other FG sections that use this
-/* for things like lighting.
+/* Revision 1.27  1998/04/03 22:12:57  curt
+/* Converting to Gnu autoconf system.
+/* Centralized time handling differences.
 /*
+ * Revision 1.26  1998/02/23 19:08:00  curt
+ * Incorporated Durk's Astro/ tweaks.  Includes unifying the sun position
+ * calculation code between sun display, and other FG sections that use this
+ * for things like lighting.
+ *
  * Revision 1.25  1998/02/09 15:07:53  curt
  * Minor tweaks.
  *