Converting to Gnu autoconf system.
Centralized time handling differences.
This commit is contained in:
parent
74e16d77f8
commit
c1004bd1a0
8 changed files with 472 additions and 201 deletions
|
@ -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)
|
|
10
Time/Makefile.am
Normal file
10
Time/Makefile.am
Normal file
|
@ -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..
|
323
Time/Makefile.in
Normal file
323
Time/Makefile.in
Normal file
|
@ -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:
|
125
Time/event.c
125
Time/event.c
|
@ -24,20 +24,22 @@
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#ifdef USE_FTIME
|
#ifdef HAVE_STDLIB_H
|
||||||
# include <stdlib.h>
|
#include <stdlib.h>
|
||||||
# include <sys/timeb.h> /* for ftime() and struct timeb */
|
#endif
|
||||||
#elif defined(__MWERKS__)
|
|
||||||
|
#if defined( HAVE_WINDOWS_H ) && defined(__MWERKS__)
|
||||||
# include <windows.h> /* For Metrowerks environment */
|
# include <windows.h> /* For Metrowerks environment */
|
||||||
# include <winbase.h> /* There is no ANSI/MSL time function that */
|
# include <winbase.h> /* There is no ANSI/MSL time function that */
|
||||||
/* contains milliseconds */
|
/* contains milliseconds */
|
||||||
#else
|
#endif
|
||||||
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
|
|
||||||
#endif /* USE_FTIME */
|
|
||||||
|
|
||||||
|
#include "fg_time.h"
|
||||||
|
|
||||||
#include <Main/fg_debug.h>
|
#include <Main/fg_debug.h>
|
||||||
#include <Time/event.h>
|
#include <Time/event.h>
|
||||||
|
@ -54,21 +56,10 @@ struct fgEVENT {
|
||||||
int status; /* status flag */
|
int status; /* status flag */
|
||||||
|
|
||||||
long interval; /* interval in ms between each iteration of this event */
|
long interval; /* interval in ms between each iteration of this event */
|
||||||
|
|
||||||
#ifdef USE_FTIME
|
fg_timestamp last_run;
|
||||||
struct timeb last_run; /* absolute time for last run */
|
fg_timestamp current;
|
||||||
struct timeb current; /* current time */
|
fg_timestamp next_run;
|
||||||
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 */
|
|
||||||
|
|
||||||
long cum_time; /* cumulative processor time of this event */
|
long cum_time; /* cumulative processor time of this event */
|
||||||
long min_time; /* time of quickest execution */
|
long min_time; /* time of quickest execution */
|
||||||
|
@ -156,13 +147,7 @@ void fgEventRun(int ptr) {
|
||||||
printf("Running %s\n", e->description);
|
printf("Running %s\n", e->description);
|
||||||
|
|
||||||
/* record starting time */
|
/* record starting time */
|
||||||
#ifdef USE_FTIME
|
timestamp(&(e->last_run));
|
||||||
ftime(&e->last_run);
|
|
||||||
#elif defined(__MWERKS__)
|
|
||||||
GetLocalTime(&e->last_run);
|
|
||||||
#else
|
|
||||||
gettimeofday(&e->last_run, &e->tz);
|
|
||||||
#endif /* USE_FTIME */
|
|
||||||
|
|
||||||
/* run the event */
|
/* run the event */
|
||||||
(*e->event)();
|
(*e->event)();
|
||||||
|
@ -174,20 +159,8 @@ void fgEventRun(int ptr) {
|
||||||
e->status = FG_EVENT_READY;
|
e->status = FG_EVENT_READY;
|
||||||
|
|
||||||
/* calculate duration and stats */
|
/* calculate duration and stats */
|
||||||
#ifdef USE_FTIME
|
timestamp(&(e->current));
|
||||||
ftime(&e->current);
|
duration = timediff(&(e->last_run), &(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 */
|
|
||||||
|
|
||||||
e->cum_time += duration;
|
e->cum_time += duration;
|
||||||
|
|
||||||
|
@ -200,20 +173,7 @@ void fgEventRun(int ptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine the next absolute run time */
|
/* determine the next absolute run time */
|
||||||
#ifdef USE_FTIME
|
timesum(&(e->next_run), &(e->last_run), e->interval);
|
||||||
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 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,57 +266,22 @@ void fgEventPrintStats( void ) {
|
||||||
/* Add pending jobs to the run queue and run the job at the front of
|
/* Add pending jobs to the run queue and run the job at the front of
|
||||||
* the queue */
|
* the queue */
|
||||||
void fgEventProcess( void ) {
|
void fgEventProcess( void ) {
|
||||||
#ifdef USE_FTIME
|
fg_timestamp current;
|
||||||
struct timeb current;
|
|
||||||
#elif defined(__MWERKS__)
|
|
||||||
SYSTEMTIME current; /* current time */
|
|
||||||
#else
|
|
||||||
struct timeval current;
|
|
||||||
struct timezone tz;
|
|
||||||
#endif /* USE_FTIME */
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fgPrintf(FG_EVENT, FG_DEBUG, "Processing events\n");
|
fgPrintf(FG_EVENT, FG_DEBUG, "Processing events\n");
|
||||||
|
|
||||||
/* get the current time */
|
/* get the current time */
|
||||||
#ifdef USE_FTIME
|
timestamp(¤t);
|
||||||
ftime(¤t);
|
|
||||||
#elif defined(__MWERKS__)
|
|
||||||
GetLocalTime(¤t);
|
|
||||||
#else
|
|
||||||
gettimeofday(¤t, &tz);
|
|
||||||
#endif /* USE_FTIME */
|
|
||||||
|
|
||||||
/* printf("Checking if anything is ready to move to the run queue\n"); */
|
/* 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 */
|
/* see if anything else is ready to be placed on the run queue */
|
||||||
for ( i = 0; i < event_ptr; i++ ) {
|
for ( i = 0; i < event_ptr; i++ ) {
|
||||||
if ( events[i].status == FG_EVENT_READY ) {
|
if ( events[i].status == FG_EVENT_READY ) {
|
||||||
#ifdef USE_FTIME
|
if ( 0 > timediff(¤t,&(events[i].next_run)) ) {
|
||||||
if ( current.time > events[i].next_run.time ) {
|
addq(i);
|
||||||
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);
|
|
||||||
}
|
|
||||||
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$
|
/* $Log$
|
||||||
/* Revision 1.10 1998/03/14 00:28:34 curt
|
/* Revision 1.11 1998/04/03 22:12:55 curt
|
||||||
/* replaced a printf() with an fgPrintf().
|
/* 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
|
* Revision 1.9 1998/01/31 00:43:44 curt
|
||||||
* Added MetroWorks patches from Carmen Volpe.
|
* Added MetroWorks patches from Carmen Volpe.
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,17 +24,22 @@
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#ifdef USE_FTIME
|
#ifdef HAVE_SYS_TIMEB_H
|
||||||
# include <sys/timeb.h> /* for ftime() and struct timeb */
|
# include <sys/timeb.h> /* for ftime() and struct timeb */
|
||||||
#else
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
# include <unistd.h> /* for gettimeofday() */
|
# include <unistd.h> /* for gettimeofday() */
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_TIME_H
|
||||||
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
|
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
|
||||||
#endif /* USE_FTIME */
|
#endif
|
||||||
|
|
||||||
#include <Time/fg_time.h>
|
#include <Time/fg_time.h>
|
||||||
#include <Include/fg_constants.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(¤t, &tz);
|
||||||
|
timestamp->seconds = current.tv_sec;
|
||||||
|
timestamp->millis = current.tv_usec / 1000;
|
||||||
|
#elif defined( HAVE_GETLOCALTIME )
|
||||||
|
SYSTEMTIME current;
|
||||||
|
GetLocalTime(¤t);
|
||||||
|
timestamp->seconds = current.wSecond;
|
||||||
|
timestamp->millis = current.wMilliseconds;
|
||||||
|
#elif defined( HAVE_FTIME )
|
||||||
|
struct timeb current;
|
||||||
|
ftime(¤t);
|
||||||
|
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
|
/* given a date in months, mn, days, dy, years, yr, return the
|
||||||
* modified Julian date (number of days elapsed since 1900 jan 0.5),
|
* modified Julian date (number of days elapsed since 1900 jan 0.5),
|
||||||
* mjd. Adapted from Xephem. */
|
* mjd. Adapted from Xephem. */
|
||||||
|
@ -168,7 +217,7 @@ double sidereal_course(struct tm *gmt, time_t now, double lng) {
|
||||||
struct timeb current;
|
struct timeb current;
|
||||||
#endif /* USE_FTIME */
|
#endif /* USE_FTIME */
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef __CYGWIN32__
|
||||||
int daylight;
|
int daylight;
|
||||||
long int timezone;
|
long int timezone;
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
@ -313,9 +362,13 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.36 1998/03/09 22:48:09 curt
|
/* Revision 1.37 1998/04/03 22:12:55 curt
|
||||||
/* Debug message tweaks.
|
/* 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
|
* Revision 1.35 1998/02/09 15:07:52 curt
|
||||||
* Minor tweaks.
|
* Minor tweaks.
|
||||||
*
|
*
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
#define _FG_TIME_H
|
#define _FG_TIME_H
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
// #ifdef WIN32
|
||||||
# include <windows.h>
|
// # include <windows.h>
|
||||||
#endif
|
// #endif
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
@ -87,6 +87,20 @@ struct fgLIGHT {
|
||||||
|
|
||||||
extern struct fgLIGHT cur_light_params;
|
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 */
|
/* Initialize the time dependent variables */
|
||||||
void fgTimeInit(struct fgTIME *t);
|
void fgTimeInit(struct fgTIME *t);
|
||||||
|
@ -99,10 +113,14 @@ void fgTimeUpdate(fgFLIGHT *f, struct fgTIME *t);
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.16 1998/02/07 15:29:47 curt
|
/* Revision 1.17 1998/04/03 22:12:56 curt
|
||||||
/* Incorporated HUD changes and struct/typedef changes from Charlie Hotchkiss
|
/* Converting to Gnu autoconf system.
|
||||||
/* <chotchkiss@namg.us.anritsu.com>
|
/* 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
|
* Revision 1.15 1998/01/27 00:48:06 curt
|
||||||
* Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
|
* Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
|
||||||
* system and commandline/config file processing code.
|
* system and commandline/config file processing code.
|
||||||
|
|
|
@ -24,25 +24,22 @@
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#include <signal.h> /* for timer routines */
|
#include <signal.h> /* for timer routines */
|
||||||
#include <stdio.h> /* for printf() */
|
#include <stdio.h> /* for printf() */
|
||||||
|
|
||||||
#ifdef USE_FTIME
|
#ifdef HAVE_SYS_TIME_H
|
||||||
# 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
|
|
||||||
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
|
# include <sys/time.h> /* for get/setitimer, gettimeofday, struct timeval */
|
||||||
#endif /* USE_FTIME */
|
#endif
|
||||||
|
|
||||||
|
#include <Time/fg_time.h>
|
||||||
#include <Time/fg_timer.h>
|
#include <Time/fg_timer.h>
|
||||||
|
|
||||||
|
|
||||||
unsigned long int fgSimTime;
|
unsigned long int fgSimTime;
|
||||||
|
|
||||||
#ifdef USE_ITIMER
|
#ifdef HAVE_SETITIMER
|
||||||
static struct itimerval t, ot;
|
static struct itimerval t, ot;
|
||||||
static void (*callbackfunc)(int multi_loop);
|
static void (*callbackfunc)(int multi_loop);
|
||||||
|
|
||||||
|
@ -86,7 +83,7 @@ void fgTimerInit(float dt, void (*f)()) {
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_ITIMER */
|
#endif /* HAVE_SETITIMER */
|
||||||
|
|
||||||
|
|
||||||
/* This function returns the number of milleseconds since the last
|
/* This function returns the number of milleseconds since the last
|
||||||
|
@ -94,49 +91,18 @@ void fgTimerInit(float dt, void (*f)()) {
|
||||||
int fgGetTimeInterval( void ) {
|
int fgGetTimeInterval( void ) {
|
||||||
int interval;
|
int interval;
|
||||||
static int inited = 0;
|
static int inited = 0;
|
||||||
|
static fg_timestamp last;
|
||||||
#ifdef USE_FTIME
|
fg_timestamp current;
|
||||||
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 */
|
|
||||||
|
|
||||||
if ( ! inited ) {
|
if ( ! inited ) {
|
||||||
inited = 1;
|
inited = 1;
|
||||||
|
timestamp(&last);
|
||||||
#ifdef USE_FTIME
|
|
||||||
ftime(&last);
|
|
||||||
#elif defined (__MWERKS__)
|
|
||||||
GetLocalTime(&last);
|
|
||||||
#else
|
|
||||||
gettimeofday(&last, &tz);
|
|
||||||
#endif /* USE_FTIME */
|
|
||||||
|
|
||||||
interval = 0;
|
interval = 0;
|
||||||
} else {
|
} else {
|
||||||
|
timestamp(¤t);
|
||||||
#ifdef USE_FTIME
|
interval = timediff(&last, ¤t);
|
||||||
ftime(¤t);
|
last.seconds = current.seconds;
|
||||||
interval = 1000 * (current.time - last.time) +
|
last.millis = current.millis;
|
||||||
(current.millitm - last.millitm);
|
|
||||||
#elif defined (__MWERKS__)
|
|
||||||
GetLocalTime(¤t);
|
|
||||||
interval = 1000 * (current.wSecond - last.wSecond) +
|
|
||||||
(current.wMilliseconds - last.wMilliseconds);
|
|
||||||
#else
|
|
||||||
gettimeofday(¤t, &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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return(interval);
|
return(interval);
|
||||||
|
@ -144,9 +110,13 @@ int fgGetTimeInterval( void ) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.10 1998/01/31 00:43:45 curt
|
/* Revision 1.11 1998/04/03 22:12:56 curt
|
||||||
/* Added MetroWorks patches from Carmen Volpe.
|
/* 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
|
* Revision 1.9 1998/01/19 19:27:21 curt
|
||||||
* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
|
* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
|
||||||
* This should simplify things tremendously.
|
* This should simplify things tremendously.
|
||||||
|
|
|
@ -344,7 +344,7 @@ void fgUpdateSunPos( void ) {
|
||||||
|
|
||||||
light = pow(1.1, -x_10 / 30.0);
|
light = pow(1.1, -x_10 / 30.0);
|
||||||
ambient = 0.2 * light;
|
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;
|
sky_brightness = 0.85 * pow(1.2, -x_8 / 20.0) + 0.15;
|
||||||
|
|
||||||
|
@ -378,11 +378,15 @@ void fgUpdateSunPos( void ) {
|
||||||
|
|
||||||
|
|
||||||
/* $Log$
|
/* $Log$
|
||||||
/* Revision 1.26 1998/02/23 19:08:00 curt
|
/* Revision 1.27 1998/04/03 22:12:57 curt
|
||||||
/* Incorporated Durk's Astro/ tweaks. Includes unifying the sun position
|
/* Converting to Gnu autoconf system.
|
||||||
/* calculation code between sun display, and other FG sections that use this
|
/* Centralized time handling differences.
|
||||||
/* for things like lighting.
|
|
||||||
/*
|
/*
|
||||||
|
* 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
|
* Revision 1.25 1998/02/09 15:07:53 curt
|
||||||
* Minor tweaks.
|
* Minor tweaks.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue