home *** CD-ROM | disk | FTP | other *** search
- General Notes for version 4.20, August 17, 1990:
-
- 1) Start by reading the generic-printer-ready manual in Man.txt. If you have
- source, read on in this file for building hints.
-
- 2) Beware that ephem does not gracefully handle the fact that there is no year
- 0 in the Christian calendar. It is best to avoid entering a year of 0 for
- now.
-
- Recent Change History:
-
- Changes from 4.19 to 4.20:
- add g/k and H/G magnitude model options for elliptical objects.
- put moon's geocentric long/lat under Hlong/Hlat columns.
- allow entering negative decimal years.
- init all static mjd storage to unlike times.
- add USE_TERMIO option to io.c.
-
- Changes from 4.18 to 4.19:
- add listing feature, with 'L' hot-key.
- add title for plot file (as well as listing file).
- add some (void) casts for lint sake.
-
- Changes from 4.17 to 4.18:
- fix parabolic comet bug in objx.c (bad lam computation).
-
- Changes from 4.16 to 4.17:
- add 'c' short cut to Menu field.
- display full Dec precision for fixed objx setup.
- increase pluto auscale in watch.c, and guard screen boundries.
- add Pause field.
- fruther improve rise/set and dawn/dusk times.
- add MENU={DATA,RISET,SEP} config/arg option.
-
- Changes from 4.15 to 4.16:
- watch popup now allows changing formats without returning.
- add 'w' short cut to watch field.
- improve labeling a bit in Dome display.
-
- Changes from 4.14 to 4.15:
- move setjmp() in main so it catches error in config file too.
- maintain name of objx/y and generally clean up objx.c.
- fix bug in circum.c related to phase of fixed objects.
- add "Sky dome" watch format and improve labels.
- remember last watch, plot and search popup selections.
-
- Changes from 4.13 to 4.14:
- fix bug watching object y by adding y to body_tags[] in watch.c.
- add ! support (#ifdef BANG in sel_fld()).
- add support for VMS via #ifdef VMS.
- switch to EPHEMCFG environ variable (HOME no longer used).
- fix phase so it works for objects out of the ecliptic.
-
- If you have source, here is how you build ephem:
-
- 1) io.c:
- define UNIX, VMS or TURBO_C in io.c depending on your system. Note that
- TURBO_C also seems to work ok with Microsoft and Lattice C too but these
- have not been tested recently. Note also that the VMS C compiler defines VMS
- automatically so you don't really have to #define it.
-
- Also in io.c and if you use UNIX, you have two choices of methods for doing
- non-blocking reads depending on whether you define USE_NDELAY; use whichever
- works for you. You can also choose between sgtty.h and termio.h; again,
- use whichever works on your system; for the latter, define USE_TERMIO.
-
- MSDOS users can do cursor control with direct BIOS calls (the default),
- or with ANSI.SYS by defining USE_ANSISYS in io.c.
-
- 2) time.c:
- Select from two methods of dealing with time from the operating system
- with the TZA/TZB defines in time.c. If you get link undefines related to
- time functions try changing to the other form.
-
- On Sun systems running OS 4.0.3 (or BSD 4.3) or Apollo SR 10.1 use TZB and
- change <time.h> to <sys/time.h>.
-
- For VMS, since it does not support time zone info, do NOT #define EITHER
- of TZA or TZB. This will have the effect of leaving the time zone unchanged
- whenever you set the time via the "Now" option. (This is taken care of
- automatically in time.c by #undef'ining TZA and TZB if VMS is defined.)
-
- 3) mainmenu.c:
- if you are compiling for an IBM-PC then try #define PC_GRAPHICS for a
- nicer looking way to draw the screen boundry lines.
-
- 4) sel_fld.c:
- if your runtime library supports the system() function (to run a shell
- command) then #define BANG in sel_fld.c, else leave it undefine. When
- defined, this will allow you to jump out of ephem and run any command,
- then resume where you left off.
-
- 5) beware that I have not used string.h or strings.h. if your library's
- strlen() and str.*cmp() functions don't return int (such as long), then you
- will have to hand add string.h or your own extern declarations. I have
- included all the necessary declarations for the functions that return
- (char *) such as strcpy(), etc, though.
-
- 6) main.c calls sleep() which is not in some IBM-PC runtime C libraries. You
- might kludge up your own call that does a cpu countdown loop. The accuracy
- will only effect the Pause feature, not ephem's actual time mechanisms.
-
- 7) Ephem can now be built by simply compiling all the .c files and linking them
- all together. On Unix systems, you must also link with the termcap library
- (-ltermcap) and possibly the auxiliary math library (-lm) if your default C
- library does not include all the required transcendental functions. At the
- end of this file I have included a VMS build script for those building
- ephem on a that system.
-
- The following files are pretty much just pure transliterations from BASIC
- into C from machine-readable copies of the programs in Duffett-Smith's book.
- They have nothing to do with the rest of ephem so they may be used for
- completely different applications if so desired.
-
- aa_hadec.c anomaly.c astro.h cal_mjd.c comet.c eq_ecl.c moon.c moonnf.c
- nutation.c obliq.c parallax.c pelement.c plans.c precess.c reduce.c
- refract.c sex_dec.c sun.c utc_gst.c
-
- $!========================================================================
- $!
- $! Name : BUILD.COM
- $!
- $! Purpose : compile and link ephem under VMS
- $!
- $! Arguments : P1/P2 = DEBUG: compile with DEBUG info
- $! P1/P2 = LINK : link only
- $!
- $! Created 23-MAR-1990 Karsten Spang
- $!
- $!========================================================================
- $ ON ERROR THEN $ GOTO EXIT
- $ ON CONTROL_Y THEN $ GOTO EXIT
- $ IF P1.EQS."DEBUG" .OR. P2.EQS."DEBUG"
- $ THEN
- $ CC:=CC/DEBUG/NOOPTIMIZE/NOLIST
- $ LINK:=LINK/DEBUG/NOMAP
- $ ELSE
- $ CC:=CC/NOLIST
- $ LINK:=LINK/NOMAP
- $ ENDIF
- $ FILES="MAIN,AA_HADEC,ALTMENUS,ANOMALY,CAL_MJD,CIRCUM,COMET,COMPILER,"+ -
- "EQ_ECL,FLOG,FORMATS,IO,MAINMENU,MOON,MOONNF,NUTATION,"+ -
- "OBJX,OBLIQ,PARALLAX,PELEMENT,PLANS,PLOT,POPUP,PRECESS,REDUCE,"+ -
- "REFRACT,RISET,RISET_C,SEL_FLD,SEX_DEC,SRCH,SUN,TIME,UTC_GST,"+ -
- "VERSION,WATCH"
- $ IF P1.EQS."LINK" .OR. P2.EQS."LINK" THEN GOTO LINK
- $ FILE_NUM=0;
- $COMPILE_LOOP:
- $ FILE=F$ELEMENT(FILE_NUM,",",FILES)
- $ IF FILE.EQS."," THEN GOTO COMPILE_END
- $ CC 'FILE'
- $ FILE_NUM=FILE_NUM+1
- $ GOTO COMPILE_LOOP
- $COMPILE_END:
- $LINK:
- $ LINK/EXE=EPHEM 'FILES',SYS$INPUT/OPT
- SYS$LIBRARY:VAXCRTL/SHARE
- $EXIT:
- $ EXIT
-