Make/qmake tweaks

The lib/Makefile.MinGW makefile  has been enhanced to link  to the DLL
version of fftw3  which is the normal version of  the library that you
get with the Windows installer.

The library is  located by passing the FFTW3_DIR variable  on the make
command line. For example on my system:

	$ # In a MinGW console
	$ cd ~/src/wsjtx/lib
	$ make QT_DIR=/c/Tools/Qt/5.2.1/mingw48_32 \
	>  FFTW3_DIR=/c/Tools/fftw-3.3.3-dll32-2

Similarly with the qmake project:

	$ # In a Qt MinGW 32-bit console
	$ cd ~/src/wsjtx
	$ qmake \
	>  HAMLIB_DIR=c:/test-install/hamlib/mingw48_32 \
	>  FFTW3_DIR=c:/Tools/fftw-3.3.3-dll32-2
	$ mingw32-make



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4551 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville 2014-10-21 13:47:19 +00:00
parent 5a56cbdedb
commit 1ff68d5098
2 changed files with 21 additions and 5 deletions

View File

@ -1,10 +1,22 @@
# Makefile for MinGW on Windows # Makefile for MinGW on Windows
#
# Needed libraries are located using the following variables:
#
# QT_DIR - point this at the root of your Qt installation
# FFTW3_DIR - point this at the fftw v3 installation directory
#
# e.g.
# make -f Makefile.MinGW \
# QT_DIR=c:/Qt/5.2.1/mingw48_32 \
# FFTW3_DIR = c:/fftw-3.3.3-dll32-2
#
# Windows re-direct: # Windows re-direct:
# C> make > junk1 2>&1 # C> make > junk1 2>&1
# Set paths # Set paths
EXE_DIR = ..\\..\\wsjtx_install EXE_DIR = ..\\..\\wsjtx_install
QT_DIR = C:/wsjt-env/Qt5/5.2.1/mingw48_32 QT_DIR = C:/wsjt-env/Qt5/5.2.1/mingw48_32
FFTW3_DIR = ..
INCPATH = -I${QT_DIR}/include/QtCore -I${QT_DIR}/include INCPATH = -I${QT_DIR}/include/QtCore -I${QT_DIR}/include
@ -37,7 +49,7 @@ all: libjt9.a libastro.a jt9.exe jt9code.exe jt65code.exe
OBJS1 = prog_args.o options.o pctile.o graycode.o sort.o ssort.o chkmsg.o \ OBJS1 = prog_args.o options.o pctile.o graycode.o sort.o ssort.o chkmsg.o \
unpackmsg.o igray.o unpackcall.o unpackgrid.o \ unpackmsg.o igray.o unpackcall.o unpackgrid.o \
grid2k.o unpacktext.o getpfx2.o packmsg.o deg2grid.o \ fmtmsg.o grid2k.o unpacktext.o getpfx2.o packmsg.o deg2grid.o \
packtext.o getpfx1.o packcall.o k2grid.o packgrid.o \ packtext.o getpfx1.o packcall.o k2grid.o packgrid.o \
nchar.o four2a.o grid2deg.o pfxdump.o f77_wisdom.o \ nchar.o four2a.o grid2deg.o pfxdump.o f77_wisdom.o \
symspec.o analytic.o db.o genjt9.o flat1.o smo.o \ symspec.o analytic.o db.o genjt9.o flat1.o smo.o \
@ -61,8 +73,8 @@ libjt9.a: $(OBJS1)
OBJS2 = jt9.o jt9a.o jt9b.o jt9c.o ipcomm.o sec_midn.o usleep.o OBJS2 = jt9.o jt9a.o jt9b.o jt9c.o ipcomm.o sec_midn.o usleep.o
LIBS2 = -L${QT_DIR}/lib -lQt5Core LIBS2 = -L${QT_DIR}/lib -lQt5Core
jt9.exe: $(OBJS2) libjt9.a jt9.exe: $(OBJS2) libjt9.a
$(CXX) -o jt9.exe -static $(OBJS2) $(LIBS2) libjt9.a \ $(CXX) -o jt9.exe $(OBJS2) $(LIBS2) libjt9.a \
../libfftw3f_win.a $(shell $(FC) -print-file-name=lib$(FC).a) -L$(FFTW3_DIR) -lfftw3f-3 $(shell $(FC) -print-file-name=lib$(FC).a)
-$(MKDIR) $(EXE_DIR) -$(MKDIR) $(EXE_DIR)
$(CP) jt9.exe $(EXE_DIR) $(CP) jt9.exe $(EXE_DIR)
@ -77,7 +89,7 @@ jt9code.exe: $(OBJS4) libjt9.a
OBJS5 = jt65.o OBJS5 = jt65.o
jt65.exe: $(OBJS5) libjt9.a jt65.exe: $(OBJS5) libjt9.a
$(FC) -o jt65.exe $(OBJS5) libjt9.a ../libfftw3f_win.a $(FC) -o jt65.exe $(OBJS5) libjt9.a -L$(FFTW3_DIR) -lfftw3f-3
OBJS7 = astrosub.o astro0.o astro.o tm2.o grid2deg.o sun.o moondop.o \ OBJS7 = astrosub.o astro0.o astro.o tm2.o grid2deg.o sun.o moondop.o \
coord.o dot.o moon2.o tmoonsub.o toxyz.o geocentric.o \ coord.o dot.o moon2.o tmoonsub.o toxyz.o geocentric.o \

View File

@ -24,6 +24,10 @@ isEmpty (HAMLIB_DIR) {
HAMLIB_DIR = ../../hamlib3/mingw32 HAMLIB_DIR = ../../hamlib3/mingw32
} }
isEmpty (FFTW3_DIR) {
HAMLIB_DIR = .
}
F90 = gfortran F90 = gfortran
gfortran.output = ${QMAKE_FILE_BASE}.o gfortran.output = ${QMAKE_FILE_BASE}.o
gfortran.commands = $$F90 -c -O2 -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} gfortran.commands = $$F90 -c -O2 -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
@ -128,7 +132,7 @@ win32 {
INCLUDEPATH += $${HAMLIB_DIR}/include INCLUDEPATH += $${HAMLIB_DIR}/include
LIBS += -L$${HAMLIB_DIR}/lib -lhamlib LIBS += -L$${HAMLIB_DIR}/lib -lhamlib
LIBS += -L./lib -lastro -ljt9 LIBS += -L./lib -lastro -ljt9
LIBS += -L. -lfftw3f_win LIBS += -L$${FFTW3_DIR} -lfftw3f-3
LIBS += -lws2_32 LIBS += -lws2_32
LIBS += $$system($$F90 -print-file-name=libgfortran.a) LIBS += $$system($$F90 -print-file-name=libgfortran.a)
} }