--- a/GUI/xephem/Makefile
+++ b/GUI/xephem/Makefile
@@ -9,9 +9,9 @@
 # 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
+LIBINC = -I../../libastro -I../libastro -I../../libip -I../libip -I../../liblilxml -I../liblilxml
+LIBLNK = -L../../libastro -L../libastro -L../../libip -L../libip -L../../liblilxml -L../liblilxml
+LIBLIB = -lastro -lip -llilxml -ljpeg -lpng -lz
 
 # MOTIFI is the directory containing the Xm directory of include files.
 # MOTIFL is the directory containing the libXm.a library.
@@ -36,12 +36,9 @@ ifeq ($(UNAME_S),Darwin)
   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
+CFLAGS := $(LIBINC) $(CFLAGS)
+LIBS = $(LIBLNK) $(XLIBS) $(LIBLIB) -lm -lssl
 
 # static linking on Apple using X11 libs from ports
 # CC = gcc
@@ -201,12 +198,9 @@ 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
+	$(MAKE) -C ../../libastro
+	$(MAKE) -C ../../libip
+	$(MAKE) -C ../../liblilxml
 
 clean:
 	rm -fr *.o ../../lib*/*.[ao]
--- a/libastro/Makefile
+++ b/libastro/Makefile
@@ -4,8 +4,6 @@
 # compiler and flags
 
 # gcc
-CC = gcc
-CFLAGS= -O2 -Wall
 
 # macosx universal binary
 # CFLAGS= -O2 -Wall -arch i386 -arch ppc
@@ -83,11 +81,11 @@ OBJS =			\
 	vsop87_data.o
 
 libastro.a: $(HS) $(OBJS)
-	ar rv $@ $(OBJS)
-	ranlib $@
+	$(AR) rv $@ $(OBJS)
+	$(RANLIB) $@
 
 libastro.so: $(HS) $(OBJS)
-	$(CC) -shared -o $@ $(OBJS)
+	$(CC) $(LDFLAGS) -shared -o $@ $(OBJS)
 
 clobber:
 	rm -f *.o libastro.a
--- a/libip/Makefile
+++ b/libip/Makefile
@@ -2,8 +2,6 @@
 # (C) 2001 Elwood Charles Downey
 
 # gcc
-CC = gcc
-CFLAGS= -I../libastro -O2 -Wall
 
 # macosx universal binary
 # CFLAGS= -I../libastro -O2 -Wall -arch i386 -arch ppc
@@ -36,11 +34,11 @@ OBJS =	\
 HS = ip.h fsmatch.h
 
 libip.a: $(HS)	$(OBJS)
-	ar rv $@ $(OBJS)
-	ranlib $@
+	$(AR) rv $@ $(OBJS)
+	$(RANLIB) $@
 
 libip.so:    $(OBJS)
-	gcc -shared -o $@ $(OBJS)
+	$(CC) $(LDFLAGS) -shared -o $@ $(OBJS)
 
 clobber:
 	rm -f *.o libip.a
--- a/liblilxml/Makefile
+++ b/liblilxml/Makefile
@@ -4,8 +4,6 @@
 # compiler and flags
 
 # gcc
-CC = gcc
-CFLAGS= -O2 -Wall
 
 # macosx universal binary
 # CFLAGS= -O2 -Wall -arch i386 -arch ppc
@@ -27,8 +25,8 @@ HS = lilxml.h
 OBJS = lilxml.o base64.o
 
 liblilxml.a: $(HS) $(OBJS)
-	ar r $@ $(OBJS)
-	ranlib $@
+	$(AR) r $@ $(OBJS)
+	$(RANLIB) $@
 
 liltest: liltest.o liblilxml.a
 	$(CC) $(LDFLAGS) -o liltest liltest.o liblilxml.a
