Files
milsko/tools/genbor.pl
NishiOwO 10024341d5 seems to work
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@288 b9cfdab3-6d41-4d17-bbe4-086880011989
2025-10-12 09:42:35 +00:00

81 lines
2.1 KiB
Perl

#!/usr/bin/env perl
# $Id$
our @sources = ();
our @c_sources = ();
our @cxx_sources = ();
sub scan {
opendir(DIR, $_[0]);
my @files = readdir(DIR);
foreach my $f (@files) {
if (!($f =~ /^vulkan\.cc?$/) && ($f =~ /\.cc?$/)) {
my $p = $_[0] . "/" . $f;
$p =~ s/\//\\/g;
push(@sources, $p);
$p =~ s/\.cc?$/.obj/g;
print(OUT " $p");
}
}
closedir(DIR);
}
open(OUT, ">", "BorMakefile");
print(OUT "# \$Id\$\n");
print(OUT "CC = bcc32\n");
print(OUT "CXX = bcc32\n");
print(OUT "CFLAGS = -D_MILSKO -DUSE_GDI -DUSE_STB_IMAGE -DSTBI_NO_SIMD -Iinclude\n");
print(OUT "CXXFLAGS = -Iinclude\n");
print(OUT "\n");
print(OUT "OBJS =");
scan("src");
scan("src/widget");
scan("src/external");
scan("src/cursor");
scan("src/icon");
push(@sources, "src\\backend\\gdi.c");
@c_sources = @sources;
@sources = ();
print(OUT " src\\backend\\gdi.obj\n");
print(OUT "OOOBJS =");
scan("oosrc");
scan("oosrc/widget");
@cxx_sources = @sources;
@sources = ();
print(OUT "\n");
print(OUT "\n");
print(OUT "all: src\\Mw.dll oosrc\\MwOO.dll\n");
print(OUT "\n");
print(OUT ".SUFFIXES: .c .cc .obj\n");
print(OUT "\n");
print(OUT "clean:\n");
foreach my $l (@c_sources) {
my $obj = $l;
$obj =~ s/\.cc?/.obj/g;
print(OUT " del /q /f $obj\n");
}
foreach my $l (@cxx_sources) {
my $obj = $l;
$obj =~ s/\.cc?/.obj/g;
print(OUT " del /q /f $obj\n");
}
print(OUT " del /q /f src\\Mw.dll\n");
print(OUT " del /q /f src\\Mw.lib\n");
print(OUT " del /q /f oosrc\\MwOO.dll\n");
print(OUT " del /q /f oosrc\\MwOO.lib\n");
print(OUT "\n");
print(OUT "oosrc\\MwOO.dll: \$(OOOBJS) src\\Mw.dll\n");
print(OUT " \$(CC) -tWD -eoosrc\\MwOO.dll \$(OOOBJS) src\\Mw.lib\n");
print(OUT " implib oosrc\\MwOO.lib oosrc\\MwOO.dll");
print(OUT "\n");
print(OUT "src\\Mw.dll: \$(OBJS)\n");
print(OUT " \$(CC) -tWD -esrc\\Mw.dll \$(OBJS)\n");
print(OUT " implib src\\Mw.lib src\\Mw.dll");
print(OUT "\n");
print(OUT ".c.obj:\n");
print(OUT " \$(CC) \$(CFLAGS) -c -o\$@ \$< \n");
print(OUT ".cc.obj:\n");
print(OUT " \$(CXX) -P \$(CXXFLAGS) -c -o\$@ \$< \n");
close(OUT);