Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
48c14238
Commit
48c14238
authored
Sep 24, 2006
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make_makefiles: Merged the make_progs script into make_makefiles.
parent
ca788bbc
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
236 deletions
+94
-236
.gitignore
programs/.gitignore
+1
-1
make_progs
programs/make_progs
+0
-225
make_makefiles
tools/make_makefiles
+93
-10
No files found.
programs/.gitignore
View file @
48c14238
# Automatically generated by make_
dll
s; DO NOT EDIT!!
# Automatically generated by make_
makefile
s; DO NOT EDIT!!
/Makeprog.rules
/wineapploader
/winelauncher
...
...
programs/make_progs
deleted
100755 → 0
View file @
ca788bbc
#!/usr/bin/perl -w
#
# Update the dependencies in the programs main Makefile.in.
# Must be run in the programs/ directory of the Wine tree.
#
# Copyright 2003 Alexandre Julliard
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
use
strict
;
my
%
directories
=
();
# Programs that we want to install in the bin directory too
my
%
bin_install
=
(
"msiexec"
=>
1
,
"notepad"
=>
1
,
"progman"
=>
1
,
"regedit"
=>
1
,
"regsvr32"
=>
1
,
"uninstaller"
=>
1
,
"wineboot"
=>
1
,
"winebrowser"
=>
1
,
"winecfg"
=>
1
,
"wineconsole"
=>
1
,
"winedbg"
=>
1
,
"winefile"
=>
1
,
"winemine"
=>
1
,
"winepath"
=>
1
,
"winhelp"
=>
1
,
);
# Programs that we don't want to install at all
my
%
dont_install
=
(
"cmdlgtst"
=>
1
,
"view"
=>
1
,
"winetest"
=>
1
,
);
sub
update_file
($)
{
my
$file
=
shift
;
if
(
!
system
"cmp $file $file.new >/dev/null"
)
{
unlink
"$file.new"
;
print
"$file is unchanged\n"
;
}
else
{
rename
"$file.new"
,
"$file"
;
print
"$file updated\n"
;
}
}
# if we are inside the programs dir, go up one level
if
(
!
-
f
"configure.ac"
&&
-
f
"../configure.ac"
)
{
chdir
(
".."
);
}
my
@args
=
@ARGV
;
if
(
!
@args
)
{
@args
=
map
{
s/^(.*)\.in/$1/
;
$_
;
}
split
(
/\s/
,
`find programs -name Makefile.in -print`
);
}
foreach
my
$i
(
@args
)
{
my
$module
;
open
MAKE
,
"$i.in"
or
die
"cannot open $i.in\n"
;
$module
=
undef
;
while
(
<
MAKE
>
)
{
chop
;
# hack to disable this program... the MKPROG_SKIP comment must appear
# at the very top of the Makefile.in
last
if
(
/^\#\s*MKPROG_SKIP/
);
if
(
/^MODULE\s*=\s*([a-zA-Z0-9_.]+)/
)
{
$module
=
$1
;
next
if
(
$module
eq
"none"
);
(
$directories
{
$module
}
=
$i
)
=~
s/^programs\/(.*)\/[^\/]+$/$1/
;
die
"invalid module $module in dir $directories{$module}\n"
if
"$directories{$module}.exe"
ne
$module
;
last
;
}
if
(
/^PROGRAMS\s*=((\s*[a-zA-Z0-9_.]+)+)/
)
{
my
@programs
=
split
/ /
,
$1
;
foreach
my
$prog
(
@programs
)
{
next
unless
$prog
=~
/\.exe$/
;
(
$directories
{
$prog
}
=
$i
)
=~
s/^\.\/(.*)\/[^\/]+$/$1/
;
}
last
;
}
}
close
MAKE
;
}
open
NEWMAKE
,
">programs/Makefile.in.new"
or
die
"cannot create programs/Makefile.in.new"
;
################################################################
# makefile header
print
NEWMAKE
<<EOF;
# Automatically generated by make_progs; DO NOT EDIT!!
TOPSRCDIR = \@top_srcdir\@
TOPOBJDIR = ..
SRCDIR = \@srcdir\@
VPATH = \@srcdir\@
EOF
################################################################
# output the subdirs list
# get rid of duplicates
my
%
alldirs
=
();
foreach
my
$dir
(
sort
values
%
directories
)
{
$alldirs
{
$dir
}
=
1
;
}
print
NEWMAKE
"SUBDIRS ="
;
foreach
my
$dir
(
sort
keys
%
alldirs
)
{
printf
NEWMAKE
" \\\n\t%s"
,
$dir
;
}
print
NEWMAKE
"\n\n# Sub-directories to run make install into\nINSTALLSUBDIRS ="
;
foreach
my
$dir
(
sort
keys
%
alldirs
)
{
next
if
$dont_install
{
$dir
};
printf
NEWMAKE
" \\\n\t%s"
,
$dir
;
}
print
NEWMAKE
"\n\n# Programs to install in bin directory\nINSTALLPROGS ="
;
foreach
my
$dir
(
sort
keys
%
alldirs
)
{
printf
NEWMAKE
" \\\n\t%s"
,
$dir
if
$bin_install
{
$dir
};
}
################################################################
# output the build and install targets
print
NEWMAKE
<<EOF;
INSTALLDIRS = \$(DESTDIR)\$(bindir)
\@MAKE_RULES\@
all: wineapploader winelauncher \$(SUBDIRS)
wineapploader: wineapploader.in
sed -e 's,\@bindir\\\@,\$(bindir),g' \$(SRCDIR)/wineapploader.in >\$\@ || (\$(RM) \$\@ && false)
winelauncher: winelauncher.in
sed -e 's,\@bindir\\\@,\$(bindir),g' -e 's,\@libdir\\\@,\$(libdir),g' -e 's,\@dlldir\\\@,\$(dlldir),g' \$(SRCDIR)/winelauncher.in >\$\@ || (\$(RM) \$\@ && false)
# Rules for installation
.PHONY: install-apploader install-progs install-progs.so \$(INSTALLPROGS:%=%/__installprog__)
install-apploader: wineapploader \$(INSTALLDIRS) dummy
\$(INSTALL_SCRIPT) wineapploader \$(DESTDIR)\$(bindir)/wineapploader
\$(INSTALLPROGS:%=%/__installprog__): install-apploader
\$(RM) \$(DESTDIR)\$(bindir)/`dirname \$\@` && \$(LN) \$(DESTDIR)\$(bindir)/wineapploader \$(DESTDIR)\$(bindir)/`dirname \$\@`
install-progs.so: \$(INSTALLPROGS:%=%/__installprog__)
\$(RM) \$(DESTDIR)\$(bindir)/wineapploader
install-progs: # nothing to do here
install:: winelauncher install-progs\$(DLLEXT) \$(INSTALLDIRS)
\$(INSTALL_SCRIPT) winelauncher \$(DESTDIR)\$(bindir)/winelauncher
uninstall::
-cd \$(DESTDIR)\$(bindir) && \$(RM) wineapploader winelauncher \$(INSTALLPROGS)
-rmdir \$(DESTDIR)\$(dlldir)
clean::
\$(RM) wineapploader winelauncher
# Rules for testing
check test:: \$(SUBDIRS:%=%/__test__)
EOF
close
NEWMAKE
;
update_file
(
"programs/Makefile.in"
);
################################################################
# .gitignore file
open
GITIGNORE
,
">programs/.gitignore.new"
or
die
"cannot create programs/.gitignore.new"
;
print
GITIGNORE
"# Automatically generated by make_dlls; DO NOT EDIT!!\n"
;
my
@ignores
=
(
"/Makeprog.rules"
,
"/wineapploader"
,
"/winelauncher"
,
);
foreach
my
$dir
(
sort
keys
%
alldirs
)
{
push
@ignores
,
"$dir/$dir"
;
}
print
GITIGNORE
join
(
"\n"
,
sort
@ignores
)
.
"\n"
;
close
GITIGNORE
;
update_file
(
"programs/.gitignore"
);
tools/make_makefiles
View file @
48c14238
...
...
@@ -19,6 +19,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
# Make rules files
my
%
makerules
=
(
"MAKE_RULES"
=>
"Make.rules"
,
...
...
@@ -28,6 +29,34 @@ my %makerules =
"MAKE_PROG_RULES"
=>
"programs/Makeprog.rules"
,
);
# Programs that we want to install in the bin directory too
my
%
bin_install
=
(
"msiexec"
=>
1
,
"notepad"
=>
1
,
"progman"
=>
1
,
"regedit"
=>
1
,
"regsvr32"
=>
1
,
"uninstaller"
=>
1
,
"wineboot"
=>
1
,
"winebrowser"
=>
1
,
"winecfg"
=>
1
,
"wineconsole"
=>
1
,
"winedbg"
=>
1
,
"winefile"
=>
1
,
"winemine"
=>
1
,
"winepath"
=>
1
,
"winhelp"
=>
1
,
);
# Programs that we don't want to install at all
my
%
dont_install
=
(
"cmdlgtst"
=>
1
,
"view"
=>
1
,
"winetest"
=>
1
,
);
my
(
@makefiles
,
%
makefiles
);
# update a file if changed
...
...
@@ -55,14 +84,17 @@ sub replace_in_file($$$@)
my
$start
=
shift
;
my
$end
=
shift
;
open
OLD_FILE
,
"$file"
or
die
"cannot open $file"
;
open
NEW_FILE
,
">$file.new"
or
die
"cannot create $file.new"
;
if
(
defined
(
$start
))
{
open
OLD_FILE
,
"$file"
or
die
"cannot open $file"
;
while
(
<
OLD_FILE
>
)
{
last
if
/$start/
;
print
NEW_FILE
$_
;
}
}
print
NEW_FILE
@_
;
...
...
@@ -76,7 +108,7 @@ sub replace_in_file($$$@)
}
}
close
OLD_FILE
;
close
OLD_FILE
if
defined
(
$start
)
;
close
NEW_FILE
;
return
update_file
(
$file
);
}
...
...
@@ -85,6 +117,7 @@ sub replace_in_file($$$@)
sub
parse_makefile
($)
{
my
$file
=
shift
;
my
%
make
;
open
MAKE
,
"$file.in"
or
die
"cannot open $file.in\n"
;
...
...
@@ -96,10 +129,21 @@ sub parse_makefile($)
if
(
/^\@(MAKE.*RULES)\@/
)
{
my
$var
=
$1
;
$makefiles
{
$file
}
=
$makerules
{
$var
};
return
;
$make
{
"=rules"
}
=
$makerules
{
$var
};
next
;
}
if
(
/^MODULE\s*=\s*([a-zA-Z0-9_.]+)/
)
{
$make
{
"MODULE"
}
=
$1
;
next
;
}
if
(
/^\#\s*MKDLL_SKIP/
||
/^\#\s*MKPROG_SKIP/
)
{
$make
{
"=skip"
}
=
1
;
next
;
}
}
return
%
make
;
}
if
(
-
d
".git"
)
...
...
@@ -113,7 +157,8 @@ else
foreach
my
$file
(
sort
values
%
makerules
,
@makefiles
)
{
parse_makefile
(
$file
);
my
%
make
=
parse_makefile
(
$file
);
$makefiles
{
$file
}
=
\%
make
;
}
################################################################
...
...
@@ -179,14 +224,15 @@ my @depends;
foreach
my
$file
(
sort
values
%
makerules
)
{
push
@targets
,
$file
;
if
(
!
defined
(
$makefiles
{
$file
}))
{
push
@depends
,
"$file: $file.in"
;
}
my
%
make
=
%
{
$makefiles
{
$file
}};
if
(
!
defined
(
$make
{
"=rules"
}))
{
push
@depends
,
"$file: $file.in"
;
}
else
{
push
@depends
,
"$file: $file.in Make.rules"
;
}
}
foreach
my
$file
(
sort
@makefiles
)
{
push
@targets
,
$file
unless
$file
eq
"Makefile"
;
my
$dep
=
$
makefiles
{
$file
};
my
$dep
=
$
{
$makefiles
{
$file
}}{
"=rules"
};
push
@depends
,
"$file: $file.in $dep"
;
}
...
...
@@ -211,7 +257,44 @@ system "dlls/make_dlls", @dll_makefiles;
################################################################
# update programs/Makefile.in
# update programs/Makefile.in and programs/.gitignore
sub
update_progs
(@)
{
my
(
@subdirs
,
@install_subdirs
,
@install_progs
);
my
@ignores
=
(
"/Makeprog.rules"
,
"/wineapploader"
,
"/winelauncher"
,
);
foreach
my
$make
(
@_
)
{
my
%
makefile
=
%
{
$makefiles
{
$make
}};
my
$module
=
$makefile
{
"MODULE"
};
(
my
$dir
=
$make
)
=~
s/^programs\/(.*)\/Makefile$/$1/
;
die
"Invalid module $module in $make"
unless
"$dir.exe"
eq
$module
;
next
if
defined
$makefile
{
"=skip"
};
push
@subdirs
,
$dir
;
push
@ignores
,
"$dir/$dir"
;
push
@install_subdirs
,
$dir
unless
$dont_install
{
$dir
};
push
@install_progs
,
$dir
if
$bin_install
{
$dir
};
}
replace_in_file
(
"programs/Makefile.in"
,
'^SUBDIRS\s*='
,
'^INSTALLDIRS'
,
"SUBDIRS = \\\n\t"
,
join
(
" \\\n\t"
,
@subdirs
),
"\n\n# Sub-directories to run make install into\nINSTALLSUBDIRS = \\\n\t"
,
join
(
" \\\n\t"
,
@install_subdirs
),
"\n\n# Programs to install in bin directory\nINSTALLPROGS = \\\n\t"
,
join
(
" \\\n\t"
,
@install_progs
),
"\n\nINSTALLDIRS = \$(DESTDIR)\$(bindir)\n"
);
replace_in_file
(
"programs/.gitignore"
,
undef
,
undef
,
"# Automatically generated by make_makefiles; DO NOT EDIT!!\n"
,
join
(
"\n"
,
sort
@ignores
),
"\n"
);
}
my
@prog_makefiles
=
grep
/^programs\//
,
@makefiles
;
system
"programs/make_progs"
,
@prog_makefiles
;
update_progs
(
sort
grep
/^programs\/.*\/Makefile$/
,
@makefiles
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment