X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/e2f8bc057dfbd3d04c8f041e3b34e33c8ca60be0..b5752f1beb634f58852f8f3b32dc603f91a7b35f:/mkfiles.pl diff --git a/mkfiles.pl b/mkfiles.pl index a9e60e1a..635f8f7d 100755 --- a/mkfiles.pl +++ b/mkfiles.pl @@ -29,12 +29,18 @@ close IN; foreach $i (split '\n',$store{'gui-apps'}) { $i =~ s/^# //; + $speciallibs = [split ' ', $i]; + $i = shift @$speciallibs; # take off project name $gui{$i} = 1; + $libs{$i} = $speciallibs; } foreach $i (split '\n',$store{'console-apps'}) { $i =~ s/^# //; - $gui{$i} = -0; + $speciallibs = [split ' ', $i]; + $i = shift @$speciallibs; # take off project name + $gui{$i} = 0; + $libs{$i} = $speciallibs; } sub project { @@ -72,8 +78,8 @@ print "\n". "CFLAGS = -mno-cygwin -Wall -O2 -D_WINDOWS -DDEBUG -DWIN32S_COMPAT -D_NO_OLDNAMES -I.\n". "LDFLAGS = -mno-cygwin -s\n". -"RCFLAGS = \$(RCINC) --define WIN32=1 --define _WIN32=1 --define WINVER=0x0400\n". -"LIBS = -ladvapi32 -luser32 -lgdi32 -lwsock32 -lcomctl32 -lcomdlg32\n". +"RCFLAGS = \$(RCINC) --define WIN32=1 --define _WIN32=1 --define WINVER=0x0400 --define MINGW32_FIX=1\n". +"LIBS = -ladvapi32 -luser32 -lgdi32 -lwsock32 -lcomctl32 -lcomdlg32 -lwinmm\n". "OBJ=o\n". "RES=res.o\n". "\n"; @@ -83,15 +89,20 @@ print ".SUFFIXES:\n". "\n". "%.o: %.c\n". -"\t\$(CC) \$(FWHACK) \$(CFLAGS) -c \$<\n". +"\t\$(CC) \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) -c \$<\n". "\n". "%.res.o: %.rc\n". "\t\$(RC) \$(FWHACK) \$(RCFL) \$(RCFLAGS) \$< \$\@\n". "\n"; +print "all:"; +print map { " $_.exe" } @projects; +print "\n\n"; foreach $p (@projects) { print $p, ".exe: ", &project($p), "\n"; my $mw = $gui{$p} ? " -mwindows" : ""; - print "\t\$(CC)" . $mw . " \$(LDFLAGS) -o \$@ " . &project($p), " \$(LIBS)\n\n"; + $libstr = ""; + foreach $lib (@{$libs{$p}}) { $libstr .= " -l$lib"; } + print "\t\$(CC)" . $mw . " \$(LDFLAGS) -o \$@ " . &project($p), " \$(LIBS)$libstr\n\n"; } print $store{"dependencies"}; print @@ -118,16 +129,13 @@ print "# so that the .rsp files still depend on the correct makefile.\n". "MAKEFILE = Makefile.bor\n". "\n". -"# Stop windows.h including winsock2.h which would conflict with winsock 1\n". -"CFLAGS = -DWIN32_LEAN_AND_MEAN\n". -"\n". "# Get include directory for resource compiler\n". "!if !\$d(BCB)\n". "BCB = \$(MAKEDIR)\\..\n". "!endif\n". "\n". ".c.obj:\n". -"\tbcc32 \$(COMPAT) \$(FWHACK) \$(CFLAGS) /c \$*.c\n". +"\tbcc32 -w-aus -w-ccc -w-par \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) /c \$*.c\n". ".rc.res:\n". "\tbrcc32 \$(FWHACK) \$(RCFL) -i \$(BCB)\\include \\\n". "\t\t-r -DNO_WINRESRC_H -DWIN32 -D_WIN32 -DWINVER=0x0400 \$*.rc\n". @@ -155,7 +163,10 @@ foreach $p (@projects) { print "\techo \$($objlines[$i])$plus >> $p.rsp\n"; } print "\techo $p.exe >> $p.rsp\n"; - print "\techo nul,cw32 import32, >> $p.rsp\n"; + @libs = @{$libs{$p}}; + unshift @libs, "cw32", "import32"; + $libstr = join ' ', @libs; + print "\techo nul,$libstr, >> $p.rsp\n"; print "\techo " . (join " ", &project("resources.$p")) . " >> $p.rsp\n"; print "\n"; }