unix.pl revision 296317
1#!/usr/local/bin/perl
2#
3# unix.pl - the standard unix makefile stuff.
4#
5
6$o='/';
7$cp='/bin/cp';
8$rm='/bin/rm -f';
9
10# C compiler stuff
11
12if ($gcc)
13	{
14	$cc='gcc';
15	if ($debug)
16		{ $cflags="-g2 -ggdb"; }
17	else
18		{ $cflags="-O3 -fomit-frame-pointer"; }
19	}
20else
21	{
22	$cc='cc';
23	if ($debug)
24		{ $cflags="-g"; }
25	else
26		{ $cflags="-O"; }
27	}
28$obj='.o';
29$ofile='-o ';
30
31# EXE linking stuff
32$link='${CC}';
33$lflags='${CFLAGS}';
34$efile='-o ';
35$exep='';
36$ex_libs="";
37
38# static library stuff
39$mklib='ar r';
40$mlflags='';
41$ranlib=&which("ranlib") or $ranlib="true";
42$plib='lib';
43$libp=".a";
44$shlibp=".a";
45$lfile='';
46
47$asm='as';
48$afile='-o ';
49$bn_asm_obj="";
50$bn_asm_src="";
51$des_enc_obj="";
52$des_enc_src="";
53$bf_enc_obj="";
54$bf_enc_src="";
55
56sub do_lib_rule
57	{
58	local($obj,$target,$name,$shlib)=@_;
59	local($ret,$_,$Name);
60
61	$target =~ s/\//$o/g if $o ne '/';
62	$target="$target";
63	($Name=$name) =~ tr/a-z/A-Z/;
64
65	$ret.="$target: \$(${Name}OBJ)\n";
66	$ret.="\t\$(RM) $target\n";
67	$ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
68	$ret.="\t\$(RANLIB) $target\n\n";
69	}
70
71sub do_link_rule
72	{
73	local($target,$files,$dep_libs,$libs)=@_;
74	local($ret,$_);
75
76	$file =~ s/\//$o/g if $o ne '/';
77	$n=&bname($target);
78	$ret.="$target: $files $dep_libs\n";
79	$ret.="\t\$(LINK_CMD) ${efile}$target \$(LFLAGS) $files $libs\n\n";
80	return($ret);
81	}
82
83sub which
84	{
85	my ($name)=@_;
86	my $path;
87	foreach $path (split /:/, $ENV{PATH})
88		{
89		if (-x "$path/$name")
90			{
91			return "$path/$name";
92			}
93		}
94	}
95
961;
97