1# Makefile for Linux
2CC  = gcc
3FC = gfortran
4CXX = g++
5
6FFLAGS = -O2 -fbounds-check -Wall -Wno-precision-loss -fno-second-underscore
7# For ptt_unix:
8CFLAGS = -I. -fbounds-check -DHAVE_STDLIB_H=1 -DHAVE_STDIO_H=1 \
9	-DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1
10
11# Default rules
12%.o: %.c
13	${CC} ${CFLAGS} -c $<
14%.o: %.f
15	${FC} ${FFLAGS} -c $<
16%.o: %.F
17	${FC} ${FFLAGS} -c $<
18%.o: %.f90
19	${FC} ${FFLAGS} -c $<
20%.o: %.F90
21	${FC} ${FFLAGS} -c $<
22
23all:    packjt.o libm65.a m65 mapsim libastro.a
24
25OBJS1 = trimlist.o display.o getdphi.o pctile.o ccf65.o \
26	decode1a.o sort.o filbig.o fil6521.o afc65b.o \
27	twkfreq.o decode65b.o indexx.o ssort.o fchisq.o setup65.o \
28	extract.o deep65.o ccf2.o demod64a.o chkhist.o graycode.o \
29	interleave63.o encode65.o igray.o set.o shell.o qra64_subs.o \
30	grid2k.o getpfx2.o qra64b.o qra64c.o twkfreq_xy.o qra64zap.o \
31	deg2grid.o getpfx1.o k2grid.o ftrsd2.o graycode65.o \
32	wrapkarn.o nchar.o init_rs.o encode_rs.o decode_rs.o \
33	four2a.o rfile3a.o grid2deg.o pfxdump.o dpol.o sync64.o spec64.o \
34	astro.o tm2.o sun.o moondop.o coord.o tmoonsub.o \
35	geocentric.o moon2.o toxyz.o dot.o dcoord.o f77_wisdom.o \
36	gen65.o chkmsg.o astrosub.o astro0.o recvpkt.o symspec.o \
37	iqcal.o iqfix.o timf2.o s3avg.o packjt.o badmsg.o fmtmsg.o \
38	qracodes.o qra64.o smo.o averms.o lorentzian.o npfwht.o pdmath.o \
39	qra13_64_64_irr_e.o fchisq0.o genqra64a.o ptt_unix.o
40
41packjt.o: packjt.f90
42	$(FC) -c packjt.f90
43
44libm65.a: $(OBJS1)
45	ar cr libm65.a $(OBJS1)
46	ranlib libm65.a
47
48qra64_subs.o: ./qra64/qra64_subs.c
49	gcc -c -O2 -o qra64_subs.o ./qra64/qra64_subs.c
50
51qracodes.o: ./qracodes/qracodes.c
52	gcc -c -O2 -o qracodes.o ./qracodes/qracodes.c
53
54qra64.o: ./qra64/qra64.c
55	gcc -c -O2 -o qra64.o ./qra64/qra64.c
56
57qra13_64_64_irr_e.o: ./qracodes/qra13_64_64_irr_e.c
58	gcc -c -O2 -o qra13_64_64_irr_e.o ./qracodes/qra13_64_64_irr_e.c
59
60npfwht.o: ./qracodes/npfwht.c
61	gcc -c -O2 -o npfwht.o ./qracodes/npfwht.c
62
63pdmath.o: ./qracodes/pdmath.c
64	gcc -c -O2 -o pdmath.o ./qracodes/pdmath.c
65
66OBJS3 = m65.o m65a.o map65a.o symspec.o decode0.o ftninit.o ftnquit.o \
67	timer.o ipcomm.o sec_midn.o usleep.o
68
69m65: $(OBJS3) libm65.a
70	$(CXX) -o m65 $(OBJS3) libm65.a -lfftw3f -lQt5Core -lfftw3f -lgfortran
71	cp m65 ../../map65_install
72
73OBJS7 = astrosub.o astro0.o astro.o tm2.o grid2deg.o sun.o moondop.o \
74	coord.o dot.o moon2.o tmoonsub.o toxyz.o geocentric.o \
75	dcoord.o
76
77libastro.a: $(OBJS7)
78	ar cr libastro.a $(OBJS7)
79	ranlib libastro.a
80
81OBJS6 = mapsim.o cgen65.o noisegen.o gran.o
82mapsim: $(OBJS6) libm65.a
83	$(FC) -o mapsim $(OBJS6) libm65.a
84
85INCPATH = -I. -I'/usr/include/x86_64-linux-gnu/qt5' \
86	-I'/usr/include/x86_64-linux-gnu/qt5/QtCore'
87
88ipcomm.o: ipcomm.cpp
89	$(CXX) -c $(INCPATH) -fPIC ipcomm.cpp
90
91sec_midn.o: sec_midn.f90
92	$(FC) -c -fno-second-underscore sec_midn.f90
93
94OBJS4 = tastro.o astro0.o libm65.a
95tastro: $(OBJS4)
96	$(FC) $(FFLAGS) -o tastro $(OBJS4) libm65.a
97
98OBJS5 = t1.o timer.o libm65.a
99t1: $(OBJS5)
100	$(FC) $(FFLAGS) -o t1 $(OBJS5) libm65.a
101
102init_rs.o: init_rs.c
103	$(CC) -c -DBIGSYM=1 -o init_rs.o init_rs.c
104
105encode_rs.o: encode_rs.c
106	$(CC) -c -DBIGSYM=1 -o encode_rs.o encode_rs.c
107
108decode_rs.o: decode_rs.c
109	$(CC) -c -DBIGSYM=1 -o decode_rs.o decode_rs.c
110
111.PHONY : clean
112
113clean:
114	rm -f *.o *.mod libm65.a m65
115