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