Compare commits

...
Sign in to create a new pull request.

21 commits

Author SHA1 Message Date
Fedora Release Engineering
3338eb3ab7 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 09:07:43 +00:00
Yaakov Selkowitz
a93cba6cc8 Rebuilt for openssl 4.0 2026-06-12 20:07:47 -04:00
Mattia Verga
dc8f5fc727 Update to 4.3.0 2026-03-14 11:10:14 +01:00
Fedora Release Engineering
3a65e82aea Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 20:34:28 +00:00
Fedora Release Engineering
01e6f0bb2c Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:44:34 +00:00
Mattia Verga
fecbaeaf22 Set project C standard to 17 2025-01-20 09:28:36 +01:00
Fedora Release Engineering
4db47184fe Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 15:39:14 +00:00
Fedora Release Engineering
7a0d332c84 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 09:54:47 +00:00
Mattia Verga
e1b7363185 Fix hardcoded dirs for flatpak compatibility 2024-02-15 17:52:01 +01:00
Mattia Verga
cd28f742f1 Update to stable 4.2.0 (fedora#2264118) 2024-02-14 18:31:30 +01:00
Mattia Verga
df1a3d5d2e Update to latest svn
... version
- Fix icons and desktop file
- Add appstream metainfo
- Fix versioning
2024-02-11 15:17:38 +01:00
Fedora Release Engineering
a93fe32118 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 09:31:04 +00:00
Fedora Release Engineering
e1fc82b45c Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 18:42:11 +00:00
Mattia Verga
2551dd91d8 Add missing cmake BuildRequires
[SKIP CHANGELOG]
2023-02-11 18:57:51 +01:00
Mattia Verga
733933fea3 Fix patch for new sources 2023-02-11 18:45:53 +01:00
Mattia Verga
36eebaf6e7 Fix it again
[skip changelog]
2023-02-11 18:39:08 +01:00
Mattia Verga
e3a9e0b3bb Fix patch order
[skip changelog]
2023-02-11 18:30:33 +01:00
Mattia Verga
4244bd0166 Patch sources to use cmake for build and install 2023-02-11 18:18:10 +01:00
Florian Weimer
6098e65f25 C99 compatibility fix
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-01-19 13:00:40 +01:00
Mattia Verga
3a1067cdb7 Add libxml2 to BR and fix patch
...
- Add gzip and curl to runtime dependencies
2022-10-10 18:09:49 +02:00
Mattia Verga
7343c38d57 Set build flags for EPEL 2022-10-07 17:38:31 +02:00
7 changed files with 561 additions and 104 deletions

4
.gitignore vendored
View file

@ -1 +1,5 @@
/XEphem-b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381.tar.gz
/XEphem-0a1b50503bdf202fb6fa7ca62124b0242a004e69.tar.gz
/XEphem-a2da14bfc6727b1255df6f31ac4ce89d4bd881c8.tar.gz
/XEphem-4.2.0.tar.gz
/XEphem-4.3.0.tar.gz

View file

@ -4,6 +4,6 @@ Type=Application
Name=XEphem
GenericName=Astronomical ephemeris calculator
Exec=xephem
Icon=XEphem
Icon=xephem
Terminal=false
Categories=Science;Astronomy

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2023 Miguel Molina <mmolina.unphysics@gmail.com> -->
<component type="desktop-application">
<id>io.github.xephem.desktop</id>
<name>XEphem</name>
<name xml:lang="es">XEphem</name>
<summary>Interactive astronomical ephemeris software</summary>
<summary xml:lang="es">Software interactivo de efemérides astronómicas</summary>
<metadata_license>MIT</metadata_license>
<project_license>MIT</project_license>
<description>
<p>
<ul>
<li><em>XEphem</em> is an interactive astronomy program for all UNIX platforms, written and maintained by _Elwood Downey_ over more than thirty years 19902021 and now generously released under the MIT License.</li>
<li><em>XEphem</em> can compute information on demand or time can be set to increment automatically. In this way a series of computations and movies can be generated.</li>
</ul>
</p>
<p xml:lang="es">
<ul>
<li><em>XEphem</em> es un programa de astronomía interactivo para todas las plataformas UNIX, escrito y mantenido por _Elwood Downey_ durante más de treinta años entre 1990 y 2021 y ahora publicado generosamente bajo la licencia MIT.</li>
<li><em>XEphem</em> puede calcular información bajo demanda o se puede configurar automáticamente en el tiempo. De esta forma se pueden generar una serie de cálculos y animaciones.</li>
</ul>
</p>
</description>
<launchable type="desktop-id">xephem.desktop</launchable>
<url type="homepage">https://xephem.github.io/XEphem/Site/xephem.html</url>
<url type="help">https://xephem.github.io/XEphem/Site/help/xephem.html</url>
<update_contact>xephem@ClearSkyInstitute.com</update_contact>
<developer_name>Elwood Charles Downey</developer_name>
<releases>
<release date="2021-09-13" version="4.1.0"/>
</releases>
<provides>
<binary>xephem</binary>
</provides>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/sky-view.png</image>
<caption>Highly configurable interactive Sky View.</caption>
<caption xml:lang="es">Vista del cielo interactivo altamente configurable.</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/solsys.png</image>
<caption>3D projection and true stereo views of the solar system, perfect for visualizing comet paths.</caption>
<caption xml:lang="es">Proyecciones 3D y vistas estereográficas reales del sistema solar, perfectas para visualizar trayectorias de cometas.</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/sun-view.png</image>
<caption>Near real-time Solar images from the SOHO spacecraft.</caption>
<caption xml:lang="es">Imágenes solares en tiempo real desed la nave espacial SOHO.</caption>
</screenshot>
</screenshots>
</component>

View file

@ -1 +1 @@
SHA512 (XEphem-b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381.tar.gz) = ca1793215c9f8e6070d69b73dabe932de19eeffaa266cf8bd4b1b4dd291cc1114b0093fb9620c5c872f4b59c172b8cfed830f5a8ac395134e643a1a43fee4473
SHA512 (XEphem-4.3.0.tar.gz) = c93a946ca457946dba356ac2ef6cada5203b67a29f6788af3cb7b02670ca5fd876c61f4c5daa556036abf129ac50895599fd1e794adb91d07b1b0ca422bc8bb6

View file

@ -1,13 +1,13 @@
#%%global gittag 4.1.0
%global commit b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global date 20221006
%global gittag 4.3.0
#%%global commit a2da14bfc6727b1255df6f31ac4ce89d4bd881c8
#%%global shortcommit %%(c=%%{commit}; echo ${c:0:7})
#%%global date 20240205
Name: xephem
%if "%{?gittag}"
Version: 4.1.0
Version: %{gittag}
%else
Version: 4.1.0^%{date}%{shortcommit}
Version: 4.1.0^%{date}.git%{shortcommit}
%endif
Release: %autorelease
Summary: Scientific-grade interactive astronomical ephemeris software
@ -19,25 +19,37 @@ Source0: https://github.com/XEphem/XEphem/archive/%{gittag}/XEphem-%{vers
%else
Source0: https://github.com/XEphem/XEphem/archive/%{commit}/XEphem-%{commit}.tar.gz
%endif
# Desktop file is not provided by upstream
# Desktop and appstream metadata files are not provided in upstream sources
Source1: io.github.xephem.desktop
Source2: io.github.xephem.metainfo.xml
# Patch to use system libraries and not override CFLAGS
# Proposed upstream: https://github.com/XEphem/XEphem/pull/58
Patch: xephem_makefile.patch
# Patch to use cmake to build and install
# Proposed upstream: https://github.com/XEphem/XEphem/pull/60
Patch: xephem_with_cmake.patch
ExcludeArch: %{ix86}
BuildRequires: desktop-file-utils
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: groff-base
BuildRequires: libappstream-glib
BuildRequires: make
BuildRequires: motif-devel
BuildRequires: ImageMagick
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(zlib)
Requires: %{name}-data = %{version}-%{release}
Requires: curl
Requires: gzip
%description
XEphem is a scientific-grade interactive astronomical ephemeris software.
@ -73,49 +85,77 @@ rm -rf libXm/
# Rename liblilxml license files
cp liblilxml/LICENSE LICENSE.liblilxml
# Change hardcoded resources directory for flatpak
%if 0%{?flatpak}
sed -i -e 's|/etc/XEphem|/app/etc/XEphem|g' GUI/xephem/{splash.c,xephem.c}
%endif
%build
pushd GUI/xephem
%make_build
popd
%if 0%{?epel}
%set_build_flags
%endif
%cmake
%cmake_build
# Create standard size icons
for d in 32 48 64 128 ; do
convert GUI/xephem/XEphem.png -geometry ${d}x${d} -depth 8 -background none xephem-${d}.png
done
# Old manual build method
#pushd GUI/xephem
#%%make_build
#popd
%install
# There's no automated install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_sysconfdir}
mkdir -p %{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{_datadir}/%{name}
%cmake_install
pushd GUI/xephem
install -p -m0755 %{name} %{buildroot}/%{_bindir}
install -p -m0644 %{name}.1 %{buildroot}/%{_mandir}/man1/
cp -pR auxil %{buildroot}%{_datadir}/%{name}
cp -pR catalogs %{buildroot}%{_datadir}/%{name}
cp -pR fifos %{buildroot}%{_datadir}/%{name}
cp -pR fits %{buildroot}%{_datadir}/%{name}
cp -pR gallery %{buildroot}%{_datadir}/%{name}
cp -pR help %{buildroot}%{_datadir}/%{name}
cp -pR lo %{buildroot}%{_datadir}/%{name}
# Old manual install method
# There's no automated install
#mkdir -p %%{buildroot}%%{_bindir}
#mkdir -p %%{buildroot}%%{_mandir}/man1/
#mkdir -p %%{buildroot}%%{_datadir}/%%{name}
#pushd GUI/xephem
#install -p -m0755 %%{name} %%{buildroot}/%%{_bindir}
#install -p -m0644 %%{name}.1 %%{buildroot}/%%{_mandir}/man1/
#cp -pR auxil %%{buildroot}%%{_datadir}/%%{name}
#cp -pR catalogs %%{buildroot}%%{_datadir}/%%{name}
#cp -pR fifos %%{buildroot}%%{_datadir}/%%{name}
#cp -pR fits %%{buildroot}%%{_datadir}/%%{name}
#cp -pR gallery %%{buildroot}%%{_datadir}/%%{name}
#cp -pR help %%{buildroot}%%{_datadir}/%%{name}
#cp -pR lo %%{buildroot}%%{_datadir}/%%{name}
#popd
# Create file to tell xephem where to find resources
mkdir -p %{buildroot}%{_sysconfdir}
cat >%{buildroot}%{_sysconfdir}/XEphem <<EOF
XEphem.ShareDir: %{_datadir}/%{name}
EOF
popd
# Provide a desktop entry
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
install -p -m0644 GUI/xephem/XEphem.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
# Install icons
for d in 32 48 64 128 ; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${d}x${d}/apps/
install -p -m0644 xephem-${d}.png %{buildroot}%{_datadir}/icons/hicolor/${d}x${d}/apps/xephem.png
done
# Install appstream metadata
mkdir -p %{buildroot}%{_metainfodir}
install -p -m0644 %{SOURCE2} %{buildroot}%{_metainfodir}
%check
# Tests currently fail, need to check with upstream
#pushd tests
#make run-test
#popd
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
pushd tests
make run-test
popd
%files
@ -124,10 +164,8 @@ install -p -m0644 GUI/xephem/XEphem.png %{buildroot}%{_datadir}/icons/hicolor/12
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1*
%{_datadir}/applications/io.github.%{name}.desktop
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/128x128
%dir %{_datadir}/icons/hicolor/128x128/apps
%{_datadir}/icons/hicolor/128x128/apps/XEphem.png
%{_datadir}/icons/hicolor/*/apps/xephem.png
%{_metainfodir}/io.github.%{name}.metainfo.xml
%files data
%{_datadir}/%{name}

View file

@ -1,36 +1,22 @@
diff -udHrN -- a/GUI/xephem/Makefile b/GUI/xephem/Makefile
--- a/GUI/xephem/Makefile 2022-01-27 20:27:21.000000000 +0100
+++ b/GUI/xephem/Makefile 2022-09-01 09:48:57.743617610 +0200
@@ -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../../libip -I../../liblilxml
+LIBLNK = -L../../libastro -L../../libip -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.
@@ -31,8 +31,8 @@
# for linux and Apple OS X
CC = gcc
CLDFLAGS = -g
-CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/opt/X11/include
-LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/opt/X11/lib
+CFLAGS += -I$(MOTIFI) -I/opt/X11/include $(LIBINC)
+LDFLAGS += -L$(MOTIFL) -L/opt/X11/lib $(LIBLNK)
XLIBS = -lXm -lXt -lXext -lXmu -lX11
LIBS = $(XLIBS) $(LIBLIB) -lm -lssl
@@ -185,21 +185,21 @@
From 8b0dc944284def804b99bcee436f93d19b44c0da Mon Sep 17 00:00:00 2001
From: Mattia Verga <mattia.verga@tiscali.it>
Date: Thu, 1 Sep 2022 10:22:20 +0200
Subject: [PATCH] Make build parallel safe
---
GUI/xephem/Makefile | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/GUI/xephem/Makefile b/GUI/xephem/Makefile
index ddfbef9..da10016 100644
--- a/GUI/xephem/Makefile
+++ b/GUI/xephem/Makefile
@@ -185,21 +185,23 @@ OBJS = \
xephem.o \
xmisc.o
-all: libs xephem xephem.1
+LIBRARIES := libip liblilxml
+LIBRARIES := libip liblilxml libjpegd libpng libz
-xephem: $(INCS) $(OBJS)
+all: $(LIBRARIES) xephem xephem.1
@ -48,6 +34,8 @@ diff -udHrN -- a/GUI/xephem/Makefile b/GUI/xephem/Makefile
- cd ../../liblilxml; make
- cd ../../libpng; make
- cd ../../libz; make
+libs: $(LIBRARIES)
+
+$(LIBRARIES): libastro
+ $(MAKE) --directory=../../$@
+
@ -56,39 +44,3 @@ diff -udHrN -- a/GUI/xephem/Makefile b/GUI/xephem/Makefile
clean:
rm -fr *.o ../../lib*/*.[ao]
diff -udHrN -- a/libastro/Makefile b/libastro/Makefile
--- a/libastro/Makefile 2022-01-27 20:27:21.000000000 +0100
+++ b/libastro/Makefile 2022-09-01 09:44:11.958463960 +0200
@@ -5,7 +5,7 @@
# gcc
CC = gcc
-CFLAGS= -O2 -Wall
+#CFLAGS= -O2 -Wall
# macosx universal binary
# CFLAGS= -O2 -Wall -arch i386 -arch ppc
diff -udHrN -- a/libip/Makefile b/libip/Makefile
--- a/libip/Makefile 2022-01-27 20:27:21.000000000 +0100
+++ b/libip/Makefile 2022-09-01 09:44:11.958463960 +0200
@@ -3,7 +3,7 @@
# gcc
CC = gcc
-CFLAGS= -I../libastro -O2 -Wall
+CFLAGS += -I../libastro
# macosx universal binary
# CFLAGS= -I../libastro -O2 -Wall -arch i386 -arch ppc
diff -udHrN -- a/liblilxml/Makefile b/liblilxml/Makefile
--- a/liblilxml/Makefile 2022-01-27 20:27:21.000000000 +0100
+++ b/liblilxml/Makefile 2022-09-01 09:44:11.959463950 +0200
@@ -5,7 +5,7 @@
# gcc
CC = gcc
-CFLAGS= -O2 -Wall
+#CFLAGS= -O2 -Wall
# macosx universal binary
# CFLAGS= -O2 -Wall -arch i386 -arch ppc

410
xephem_with_cmake.patch Normal file
View file

@ -0,0 +1,410 @@
diff -U 3 -dHrN a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/CMakeLists.txt 2026-03-14 11:05:34.680886726 +0100
@@ -0,0 +1,76 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(xephem VERSION 4.1.0 LANGUAGES C)
+set(DISPLAY_NAME "XEphem")
+set(CMAKE_C_STANDARD 17)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+# Required packages
+find_package(Motif REQUIRED)
+find_package(OpenSSL REQUIRED)
+find_package(X11 REQUIRED)
+
+# Optional packages
+find_package(JPEG)
+find_package(PNG)
+find_package(ZLIB)
+
+# Define installation directories
+if((NOT WIN32) AND (NOT NATIVE_OSX_APP))
+ include(GNUInstallDirs)
+endif()
+if(NATIVE_OSX_APP)
+ set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.app/Contents")
+ set(CMAKE_INSTALL_FULL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/Resources/locale")
+ set(CMAKE_INSTALL_BINDIR "MacOS")
+ set(XEPHEM_DATADIR "${CMAKE_INSTALL_PREFIX}/Resources")
+elseif(WIN32)
+ set(CMAKE_INSTALL_BINDIR ".")
+ set(CMAKE_INSTALL_DATAROOTDIR ".")
+ set(CMAKE_INSTALL_DATADIR ".")
+ set(CMAKE_INSTALL_FULL_LOCALEDIR "locale")
+ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}")
+ set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}")
+else()
+ set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
+endif()
+
+# Build libraries
+add_subdirectory(libastro)
+add_subdirectory(libip)
+if(NOT JPEG_FOUND)
+ add_subdirectory(libjpegd)
+endif()
+add_subdirectory(liblilxml)
+if(NOT PNG_FOUND)
+ add_subdirectory(libpng)
+endif()
+if(NOT ZLIB_FOUND)
+ add_subdirectory(libz)
+endif()
+
+# Build main program
+add_subdirectory(GUI/xephem)
+
+# Install
+install(TARGETS xephem
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES ${CMAKE_BINARY_DIR}/xephem.1
+ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+install(DIRECTORY GUI/xephem/auxil
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/catalogs
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/fifos
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/fits
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/gallery
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/help
+ DESTINATION ${XEPHEM_DATADIR})
+install(DIRECTORY GUI/xephem/lo
+ DESTINATION ${XEPHEM_DATADIR})
diff -U 3 -dHrN a/GUI/xephem/CMakeLists.txt b/GUI/xephem/CMakeLists.txt
--- a/GUI/xephem/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/GUI/xephem/CMakeLists.txt 2026-03-14 11:05:34.681033815 +0100
@@ -0,0 +1,95 @@
+cmake_minimum_required(VERSION 3.10)
+
+set(SRC_FILES
+ aavso.c
+ annotmenu.c
+ broadcast.c
+ calmenu.c
+ closemenu.c
+ compiler.c
+ coordsmenu.c
+ datamenu.c
+ db.c
+ dbmenu.c
+ earthmap.c
+ earthmenu.c
+ fallbacks.c
+ favmenu.c
+ formats.c
+ fsmenu.c
+ gallerymenu.c
+ glance.c
+ gsc.c
+ gscnet.c
+ helpmenu.c
+ homeio.c
+ hznmenu.c
+ imregmenu.c
+ indimenu.c
+ jpeg2pm.c
+ jupmenu.c
+ listmenu.c
+ mainmenu.c
+ marsmenu.c
+ marsmmenu.c
+ moonmenu.c
+ moviemenu.c
+ msgmenu.c
+ netmenu.c
+ objmenu.c
+ obslog.c
+ patchlevel.c
+ plot_aux.c
+ plotmenu.c
+ preferences.c
+ progress.c
+ ps.c
+ query.c
+ rotated.c
+ satmenu.c
+ saveres.c
+ scope.c
+ sites.c
+ skybinary.c
+ skyeyep.c
+ skyfifos.c
+ skyfiltmenu.c
+ skyfits.c
+ skyhist.c
+ skyip.c
+ skylist.c
+ skytoolbar.c
+ skyviewmenu.c
+ solsysmenu.c
+ splash.c
+ srchmenu.c
+ sunmenu.c
+ time.c
+ tips.c
+ trailmenu.c
+ ucac.c
+ uranusmenu.c
+ usno.c
+ versionmenu.c
+ webdbmenu.c
+ xe2.c
+ xe3.c
+ xephem.c
+ xmisc.c)
+
+set(TARGET_LIB astro ip lilxml m png ssl Xm Xt Xext Xmu X11 z)
+if(NOT JPEG_FOUND)
+ set(TARGET_LIB ${TARGET_LIB} jpegd)
+else()
+ set(TARGET_LIB ${TARGET_LIB} jpeg)
+endif()
+
+add_executable(xephem ${SRC_FILES})
+target_link_libraries(xephem ${TARGET_LIB})
+
+add_custom_command(TARGET xephem
+ POST_BUILD
+ COMMAND nroff -man ${CMAKE_CURRENT_SOURCE_DIR}/xephem.man > xephem.1
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ COMMENT "Building manpage"
+ VERBATIM)
diff -U 3 -dHrN a/libastro/CMakeLists.txt b/libastro/CMakeLists.txt
--- a/libastro/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/libastro/CMakeLists.txt 2026-03-14 11:06:44.260765464 +0100
@@ -0,0 +1,70 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(libastro C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ aa_hadec.c
+ aberration.c
+ actan.c
+ airmass.c
+ anomaly.c
+ ap_as.c
+ atlas.c
+ auxil.c
+ bdl.c
+ chap95.c
+ chap95_data.c
+ circum.c
+ comet.c
+ constel.c
+ dbfmt.c
+ deep.c
+ deltat.c
+ eclipses.c
+ earthsat.c
+ eq_ecl.c
+ eq_gal.c
+ formats.c
+ helio.c
+ jupmoon.c
+ libration.c
+ magdecl.c
+ marsmoon.c
+ misc.c
+ mjd.c
+ moon.c
+ mooncolong.c
+ moonnf.c
+ nutation.c
+ obliq.c
+ parallactic.c
+ parallax.c
+ plans.c
+ plmoon.c
+ plshadow.c
+ precess.c
+ reduce.c
+ refract.c
+ rings.c
+ riset.c
+ riset_cir.c
+ satmoon.c
+ sdp4.c
+ sgp4.c
+ sphcart.c
+ sun.c
+ thetag.c
+ twobody.c
+ umoon.c
+ utc_gst.c
+ vsop87.c
+ vsop87_data.c)
+
+add_library(astro STATIC ${SRC_FILES})
+target_include_directories(astro PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")
diff -U 3 -dHrN a/libip/CMakeLists.txt b/libip/CMakeLists.txt
--- a/libip/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/libip/CMakeLists.txt 2026-03-14 11:05:34.681189843 +0100
@@ -0,0 +1,26 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(libip C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ explodegif.c
+ fits.c
+ fsmatch.c
+ gaussfit.c
+ lstsqr.c
+ median.c
+ sqr.c
+ stars.c
+ stats.c
+ walk.c
+ wcs.c)
+
+add_library(ip STATIC ${SRC_FILES})
+target_link_libraries(ip astro)
+target_include_directories(ip PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")
diff -U 3 -dHrN a/libjpegd/CMakeLists.txt b/libjpegd/CMakeLists.txt
--- a/libjpegd/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/libjpegd/CMakeLists.txt 2026-03-14 11:05:34.681320833 +0100
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(libjpegd C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ jcomapi.c
+ jdapimin.c
+ jdapistd.c
+ jdatasrc.c
+ jdcoefct.c
+ jdcolor.c
+ jddctmgr.c
+ jdhuff.c
+ jdinput.c
+ jdmainct.c
+ jdmarker.c
+ jdmaster.c
+ jdmerge.c
+ jdphuff.c
+ jdpostct.c
+ jdsample.c
+ jerror.c
+ jidctflt.c
+ jidctfst.c
+ jidctint.c
+ jidctred.c
+ jmemmgr.c
+ jmemnobs.c
+ jquant1.c
+ jquant2.c
+ jutils.c)
+
+add_library(jpegd STATIC ${SRC_FILES})
+target_include_directories(jpegd PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")
diff -U 3 -dHrN a/liblilxml/CMakeLists.txt b/liblilxml/CMakeLists.txt
--- a/liblilxml/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/liblilxml/CMakeLists.txt 2026-03-14 11:05:34.681428772 +0100
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(liblilxml C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ base64.c
+ lilxml.c)
+
+add_library(lilxml STATIC ${SRC_FILES})
+target_include_directories(lilxml PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")
diff -U 3 -dHrN a/libpng/CMakeLists.txt b/libpng/CMakeLists.txt
--- a/libpng/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/libpng/CMakeLists.txt 2026-03-14 11:05:34.681501601 +0100
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(libpng C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ png.c
+ pngerror.c
+ pngget.c
+ pngmem.c
+ pngpread.c
+ pngread.c
+ pngrio.c
+ pngrtran.c
+ pngrutil.c
+ pngset.c
+ pngtrans.c
+ pngwio.c
+ pngwrite.c
+ pngwtran.c
+ pngwutil.c)
+
+add_library(png STATIC ${SRC_FILES})
+target_link_libraries(png z)
+target_include_directories(png PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")
diff -U 3 -dHrN a/libz/CMakeLists.txt b/libz/CMakeLists.txt
--- a/libz/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ b/libz/CMakeLists.txt 2026-03-14 11:05:34.681573741 +0100
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.10)
+
+project(libz C)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+set(SRC_FILES
+ adler32.c
+ compress.c
+ crc32.c
+ deflate.c
+ inffast.c
+ inflate.c
+ inftrees.c
+ testzlib.c
+ trees.c
+ uncompr.c
+ zutil.c)
+
+add_library(z STATIC ${SRC_FILES})
+target_include_directories(z PUBLIC
+ "${CMAKE_CURRENT_BINARY_DIR}"
+ "${CMAKE_CURRENT_SOURCE_DIR}")