crosscompiling works.

master
Steffen Pohle 4 years ago
parent b4fae05f74
commit d0184f7cc2

@ -51,6 +51,7 @@ $(TARGET): $(OBJECTS)
$(CPP) -o $@ -c $(CPPFLAGS) $< $(CPP) -o $@ -c $(CPPFLAGS) $<
clean: clean:
rm -rf TestModbus-Server-$(VERSION)/
rm -f *.o *.oo *.c~ *.h~ *.cc~ *.ui~ $(APP) Makefile~ rm -f *.o *.oo *.c~ *.h~ *.cc~ *.ui~ $(APP) Makefile~
rm -rf *.dll rm -rf *.dll
rm -rf *.exe rm -rf *.exe
@ -80,31 +81,22 @@ test-fc16: test-fc16.cc
test-fc15: test-fc15.cc test-fc15: test-fc15.cc
$(CPP) -o test-fc15 test-fc15.cc $(LDFLAGS) -I/usr/include -I/usr/local/include -L/usr/local/lib -L/usr/lib $(CPP) -o test-fc15 test-fc15.cc $(LDFLAGS) -I/usr/include -I/usr/local/include -L/usr/local/lib -L/usr/lib
copydll: $(TARGET) buildwindows: clean
echo "delete all librarys"
rm -rf *.dll
echo "copy linked dll first level"
cp -vf `ldd testmodbus-server.exe | grep .dll | grep /mingw64/bin | cut -d' ' -f3 ` ./
echo "copy network dll"
cp /usr/lib/*UDPTCPNetwork.dll ./
echo "copy linked dll second level"
cp -vf `ldd testmodbus-server.exe | grep .dll | grep /mingw64/bin | cut -d' ' -f3 ` ./
buildwindows:
rm -rf TestModbus-Server-$(VERSION)
mkdir TestModbus-Server-$(VERSION)
make clean
make configcross make configcross
make $(TARGET) make $(TARGET) -j 9
mkdir TestModbus-Server-$(VERSION)
cp testmodbus-server.exe TestModbus-Server-$(VERSION)/ cp testmodbus-server.exe TestModbus-Server-$(VERSION)/
cp testmodbus-server.ui TestModbus-Server-$(VERSION)/ cp testmodbus-server.ui TestModbus-Server-$(VERSION)/
cp testmodbus-server.png TestModbus-Server-$(VERSION)/ cp testmodbus-server.png TestModbus-Server-$(VERSION)/
cp README.md TestModbus-Server-$(VERSION)/ cp README.md TestModbus-Server-$(VERSION)/
cp Changelog TestModbus-Server-$(VERSION)/ cp Changelog TestModbus-Server-$(VERSION)/
cp LICENSE TestModbus-Server-$(VERSION)/ cp LICENSE TestModbus-Server-$(VERSION)/
tar xvzf $(CROSSENV)/files/winbuild-dll.tgz -C TestModbus-Server-$(VERSION)/ ./copydlls.sh
tar xvzf $(CROSSENV)/files/winbuild-share.tgz -C TestModbus-Server-$(VERSION)/ ./copyshare.sh
mv *.dll TestModbus-Server-$(VERSION)/
mv share TestModbus-Server-$(VERSION)/
#tar xvzf $(CROSSENV)/files/winbuild-dll.tgz -C TestModbus-Server-$(VERSION)/
#tar xvzf $(CROSSENV)/files/winbuild-share.tgz -C TestModbus-Server-$(VERSION)/
-include $(DEPENDFILE) -include $(DEPENDFILE)

@ -1,32 +1,38 @@
#!/bin/bash #!/bin/bash
cp -v /usr/lib/gcc/x86_64-w64-mingw32/10-win32/libgcc_s_seh-1.dll ./ CROSS_DEST_DIR=/opt/W64-cross-compile/lib
cp -v /usr/lib/gcc/x86_64-w64-mingw32/10-win32/libssp-0.dll ./ CROSS_COMPILER_DIR=/usr/x86_64-w64-mingw32/lib
cp -v /usr/lib/gcc/x86_64-w64-mingw32/10-win32/libstdc++-6.dll ./ CROSS_GCC_DIR=/usr/lib/gcc/x86_64-w64-mingw32/10-win32
for i in `strings testmodbus-server.exe | grep -i '\.dll$' | grep -e "^lib"`
do
if [ -e /opt/W64-cross-compile/lib/$i ]
then
cp -v /opt/W64-cross-compile/lib/$i ./
for j in `strings $i | grep -i '\.dll$' | grep -e "^lib"`
do
if [ -e /opt/W64-cross-compile/lib/$j ]
then
cp -v /opt/W64-cross-compile/lib/$j ./
fi
if [ -e /usr/x86_64-w64-mingw32/lib/$j ]
then
cp -v /usr/x86_64-w64-mingw32/lib/$j ./
fi
done
fi
if [ -e /usr/x86_64-w64-mingw32/lib/$i ]
then
cp -v /usr/x86_64-w64-mingw32/lib/$i ./
fi
done
cp -v $CROSS_COMPILER_DIR/zlib1.dll ./
# copy dll dependencys
copy_dependency() {
local I
for I in `strings $1 | grep -i '\.dll$' | grep -e "^lib"`
do
if [ -e ./$I ]
then
echo "File Exist"
elif [ -e $CROSS_COMPILER_DIR/$I ]
then
cp -v $CROSS_COMPILER_DIR/$I ./
copy_dependency $CROSS_COMPILER_DIR/$I
elif [ -e $CROSS_GCC_DIR/$I ]
then
cp -v $CROSS_GCC_DIR/$I ./
copy_dependency $CROSS_GCC_DIR/$I
elif [ -e $CROSS_DEST_DIR/$I ]
then
cp -v $CROSS_DEST_DIR/$I ./
copy_dependency $CROSS_DEST_DIR/$I
fi
done
}
copy_dependency testmodbus-server.exe

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
CROSS_PREFIX=/opt/W64-cross-compile
mkdir share mkdir share
cp -rf $CROSS_PREFIX/share/glib-2.0 share/glib-2.0
cp -rf $CROSS_PREFIX/share/gtk-2.0 share/gtk-4.0
cp -rf $CROSS_PREFIX/share/gtk-3.0 share/gtk-3.0
cp -rf $CROSS_PREFIX/share/icons share/icons

Loading…
Cancel
Save