# Sample Makefile for xephem v3.7 # Sample compile and link flags for a few systems. Find your system or similar # and uncomment as required. The default is for linux or Mac OS X systems. # The only real challenge usually is to set the MOTIFI and MOTIFL macros. # The basic idea to build XEphem is to first go compile the libraries in # ../../lib* then come back here and compile and link all the *.c files into # one executable, xephem. # These -I and -L flags point to the supporting XEphem libraries LIBINC = -I../../libastro -I../../libip -I../../liblilxml -I../../libjpegd -I../../libpng -I../../libz LIBLNK = -L../../libastro -L../../libip -L../../liblilxml -L../../libjpegd -L../../libpng -L../../libz LIBLIB = -lastro -lip -llilxml -ljpegd -lpng -lz # MOTIFI is the directory containing the Xm directory of include files. # MOTIFL is the directory containing the libXm.a library. # MOTIF can be used to set one common directory if appropriate. # On 64 bit systems, try MOTIFI = /usr/include and MOTIFL = /usr/lib64 ifdef MOTIF MOTIFI = $(MOTIF) MOTIFL = $(MOTIF) endif ifndef MOTIFI MOTIFI = /usr/include endif ifndef MOTIFL MOTIFL = /usr/lib endif # For Linux and Apple OS X UNAME_S = $(shell uname -s) ifeq ($(UNAME_S),Darwin) PLATI = -I/usr/local/opt/openssl@3/include -I/opt/X11/include PLATL = -L/usr/local/opt/openssl@3/lib -L/opt/X11/lib endif CC = gcc CLDFLAGS = -g CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) $(PLATI) LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) $(PLATL) XLIBS = -lXm -lXt -lXext -lXmu -lX11 LIBS = $(XLIBS) $(LIBLIB) -lm -lssl # static linking on Apple using X11 libs from ports # CC = gcc # OLI = /opt/local/include # OLL = /opt/local/lib # CLDFLAGS = -g # CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I$(OLI) # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L$(OLL) # XLIBS = -lXm $(OLL)/libXp.a $(OLL)/libXt.a $(OLL)/libSM.a $(OLL)/libICE.a $(OLL)/libXext.a $(OLL)/libXmu.a $(OLL)/libX11.a $(OLL)/libxcb.a $(OLL)/libXau.a $(OLL)/libXdmcp.a # LIBS = $(XLIBS) $(LIBLIB) -lm -lssl # for ppc Apple OS X to make universal (i386 and ppc binary), requires # Xcode 2.2, /Developers/SDK/MacOSX10.4u.sdk and all libs, including libXm, # built similarly # CLDFLAGS = -arch i386 -arch ppc # CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -isysroot /Developer/SDKs/MacOSX10.4u.sdk -I$(MOTIFI) -I/usr/X11R6/include # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -L$(MOTIFL) -L/usr/X11R6/lib # MKS Enterprise toolkit # MOTIFI = -I/usr/include # MOTIFL = -L/usr/lib # CC = cc # CLDFLAGS = # CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -W/subsystem:windows -s # XLIBS = -lXm -lXt -lX11 # LIBS = $(XLIBS) $(LIBLIB) -lm # SVR4 derivatives: # MOTIFI = -I/usr/include # MOTIFL = -L/usr/lib # CC = cc # CLDFLAGS = # CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) # XLIBS = -lXm -lXt -lX11 # LIBS = $(XLIBS) $(LIBLIB) -lsocket -lnsl -lc -lm /usr/ucblib/libucb.a # Note: if you get regex undefined, add -lgen to the end of LIBS. # Solaris: # Motif stuff might also be in /usr/dt/share/{include,lib}. # be sure /opt/SUNWspro/bin and /usr/ccs/bin are in your PATH ahead of /usr/ucb. # MOTIFI = -I/usr/dt/include # MOTIFL = -L/usr/dt/lib -R/usr/dt/lib # CC = cc # CLDFLAGS = # CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) -I/usr/openwin/include # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/openwin/lib # XLIBS = -lXm -lXt -lX11 # LIBS = $(XLIBS) $(LIBLIB) -lm -lsocket -lnsl # HP-UX # MOTIFI = -I/usr/include # MOTIFL = -L/usr/lib # CC = cc # CLDFLAGS = # CFLAGS = $(LIBINC) $(CLDFLAGS) -Aa -fast -I$(MOTIFI) # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) # AIX # MOTIFI = -I/usr/include # MOTIFL = -L/usr/lib # CC = xlc # CLDFLAGS = # CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -qlanglvl=ansi -qarch=com -qmaxmem=16384 -I$(MOTIFI) # LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) .PRECIOUS: xephem INCS = db.h dm.h indiapi.h map.h net.h patchlevel.h plot.h ps.h \ rotated.h sites.h skyeyep.h skyhist.h skyip.h skylist.h skytoolbar.h \ trails.h xephem.h OBJS = \ aavso.o \ annotmenu.o \ broadcast.o \ calmenu.o \ closemenu.o \ compiler.o \ coordsmenu.o \ datamenu.o \ db.o \ dbmenu.o \ earthmap.o \ earthmenu.o \ fallbacks.o \ favmenu.o \ formats.o \ fsmenu.o \ gallerymenu.o \ glance.o \ gsc.o \ gscnet.o \ helpmenu.o \ homeio.o \ hznmenu.o \ indimenu.o \ imregmenu.o \ jpeg2pm.o \ jupmenu.o \ listmenu.o \ mainmenu.o \ marsmenu.o \ marsmmenu.o \ moonmenu.o \ moviemenu.o \ msgmenu.o \ netmenu.o \ objmenu.o \ obslog.o \ patchlevel.o \ plot_aux.o \ plotmenu.o \ preferences.o \ progress.o \ ps.o \ query.o \ rotated.o \ satmenu.o \ saveres.o \ scope.o \ sites.o \ skybinary.o \ skyeyep.o \ skyfifos.o \ skyfiltmenu.o \ skyfits.o \ skyhist.o \ skyip.o \ skylist.o \ skytoolbar.o \ skyviewmenu.o \ solsysmenu.o \ splash.o \ srchmenu.o \ sunmenu.o \ time.o \ tips.o \ trailmenu.o \ uranusmenu.o \ ucac.o \ usno.o \ versionmenu.o \ webdbmenu.o \ xe2.o \ xe3.o \ xephem.o \ xmisc.o all: libs xephem xephem.1 xephem: $(INCS) $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) xephem.1: xephem.man nroff -man $? > $@ libs: cd ../../libastro; make cd ../../libip; make cd ../../libjpegd; make cd ../../liblilxml; make cd ../../libpng; make cd ../../libz; make clean: rm -fr *.o ../../lib*/*.[ao] clobber: clean rm -fr xephem xephem.1