]> git.pld-linux.org Git - packages/cook.git/blob - cook.spec
caecca9c300e9ece3d5c28dfef4b0caaf495631b
[packages/cook.git] / cook.spec
1 #
2 # Conditional build:
3 %bcond_without  tests   # don't perform "make test"
4 #
5 Summary:        A file construction tool
6 Summary(pl):    Narzêdzie do konstrukcji plików
7 Name:           cook
8 Version:        2.25
9 Release:        1
10 License:        GPL
11 Group:          Development/Building
12 Source0:        http://www.canb.auug.org.au/~millerp/cook/%{name}-%{version}.tar.gz
13 # Source0-md5:  fd116da31c59c04abe41519fc131b504
14 URL:            http://www.canb.auug.org.au/~millerp/cook/
15 BuildRequires:  bison
16 BuildRequires:  gettext-devel
17 BuildRequires:  groff
18 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
19
20 %description
21 Cook is a tool for constructing files. It is given a set of files to
22 create, and recipes of how to create them. In any non-trivial program
23 there will be prerequisites to performing the actions necessary to
24 creating any file, such as include files. The cook program provides a
25 mechanism to define these.
26
27 When a program is being developed or maintained, the programmer will
28 typically change one file of several which comprise the program. Cook
29 examines the last-modified times of the files to see when the
30 prerequisites of a file have changed, implying that the file needs to
31 be recreated as it is logically out of date.
32
33 Cook also provides a facility for implicit recipes, allowing users to
34 specify how to form a file with a given suffix from a file with a
35 different suffix. For example, to create filename.o from filename.c
36
37 - Cook is a replacement for the traditional make(1) tool. However, it
38   is necessary to convert makefiles into cookbooks using the make2cook
39   utility included in the distribution.
40
41 - Cook has a simple but powerful string-based description language
42   with many built-in functions. This allows sophisticated filename
43   specification and manipulation without loss of readability or
44   performance.
45
46 - Cook is able to use fingerprints to supplement file modification
47   times. This allows build optimization without contorted rules.
48
49 - Cook is able to build your project with multiple parallel threads,
50   with support for rules which must be single threaded. It is possible
51   to distribute parallel builds over your LAN, allowing you to turn your
52   network into a virtual parallel build engine.
53
54 If you are putting together a source-code distribution and planning to
55 write a makefile, consider writing a cookbook instead. Although Cook
56 takes a day or two to learn, it is much more powerful and a bit more
57 intuitave than the traditional make(1) tool. And Cook doesn't
58 interpret tab differently to 8 space characters!
59
60 %description -l pl
61
62 Cook jest narzêdziem do tworzenia plików. Podaje mu siê listê plików do
63 utworzenia oraz regu³y wyja¶niaj±ce jak je utworzyæ. Ka¿dy nietrywialny
64 program wymaga podjêcia pewnych dzia³añ koniecznych do utworzenia
65 ró¿nych plików, jak np. plików nag³ówkowych. Cook udostêpnia mechanizmy
66 pozwalaj±cy je zdefiniowaæ.
67
68 Tworz±c i rozwijaj±c program zazwyczaj modyfikuje siê pliki, z których
69 siê sk³ada. Cook bada daty ostatniej modyfikacji sprawdzaj±c, czy
70 zmieni³y siê zale¿no¶ci; je¶li tak, pliki powinny zostaæ zaktualizowane.
71
72 Cook umo¿liwia równie¿ definiowanie niejawnych regu³, pozwalaj±c
73 u¿ytkownikom wyszczególniæ metody tworzenia plików o podanym
74 rozszerzeniu z pliku o innym rozszerzeniu (np. jak utworzyæ
75 plik.o z plik.c).
76
77 - Cook jest zamiennikiem tradycyjnego narzêdzia make(1). Jednak przed
78 u¿yciem plików Makefile z cookiem, nale¿y wcze¶niej przekszta³ciæ
79 je do formatu rozumianego przez cooka przy u¿yciu narzêdzia make2cook
80 dostarczanego wraz z dystrybucj±.
81
82 - Cook posiada prosty lecz potê¿ny jêzyk opisowy, z wieloma wbudowanymi
83   funkcjami, dziêki czemu mo¿na podawaæ i manipulowaæ skomplikowanymi
84   specyfikacjami nazw plików bez utraty czytelno¶ci i wydajno¶ci.
85
86 - Oprócz daty ostatniej modyfikacji, cook pozwala korzystaæ z fingerprintów.
87   Dziêki temu mo¿na zoptymalizowaæ proces budowania nie uciekaj±c siê
88   do nienaturalnych regu³.
89
90 - Cook potrafi przeprowadziæ proces budowania w wielu równoleg³ych
91   w±tkach, obs³uguj±c prawid³owo regu³y jednow±tkowe. Mo¿na
92   przeprowadziæ rozproszone budowanie w sieci LAN, przekszta³caj±c
93   lokaln± sieæ w wirtualn± maszynê do budowania równoleg³ego.
94
95 Je¶li tworzysz program od zera i planujesz napisaæ Makefile,
96 przemy¶l mo¿liwo¶æ wykorzystania zamiast niego pliku cookbook.
97 Choæ na naukê Cooka trzeba po¶wiêciæ dzieñ lub dwa, jest to
98 narzêdzie o wiele potê¿niejsze i znacznie bardziej intuicyjne ni¿
99 tradycyjne make(1). Poza tym Cook nie traktuje inaczej TAB-a i
100 o¶miu spacji!
101
102 %package doc-ps
103 Summary:        Cook documentation, PostScript format
104 Summary(pl):    Dokumentacja do cooka w formacie PostScript
105 Group:          Development/Building
106
107 %description doc-ps
108 Cook documentation in PostScript format.
109
110 %description doc-ps -l pl
111 Dokumentacja do cooka w formacie PostScript.
112
113 %prep
114 %setup -q
115
116 %build
117 %configure
118 %{__make}
119
120 %{?with_tests:%{__make} sure}
121
122 %install
123 rm -rf $RPM_BUILD_ROOT
124 install -d $RPM_BUILD_ROOT
125 install -d $RPM_BUILD_ROOT%{_bindir}
126 install -d $RPM_BUILD_ROOT%{_libdir}
127 install -d $RPM_BUILD_ROOT%{_libdir}/cook
128 install -d $RPM_BUILD_ROOT%{_libdir}/cook/en/
129 install -d $RPM_BUILD_ROOT%{_libdir}/cook/en/LC_MESSAGES
130 install -d $RPM_BUILD_ROOT%{_datadir}
131 install -d $RPM_BUILD_ROOT%{_datadir}/cook
132 install -d $RPM_BUILD_ROOT%{_datadir}/cook/en
133 install -d $RPM_BUILD_ROOT%{_datadir}
134 ln -s $RPM_BUILD_ROOT%{_mandir}/man1 $RPM_BUILD_ROOT%{_datadir}/cook/en/man1
135 install -d $RPM_BUILD_ROOT%{_mandir}
136 install -d $RPM_BUILD_ROOT%{_mandir}/man1
137 install -d $RPM_BUILD_ROOT%{_pixmapsdir}
138
139 %{__make} RPM_BUILD_ROOT=$RPM_BUILD_ROOT install
140 #rm -rf $RPM_BUILD_ROOT%{_datadir}/cook/en
141 rm -rf $RPM_BUILD_ROOT%{_datadir}/cook/en/man1
142 install cook.gif $RPM_BUILD_ROOT%{_pixmapsdir}
143
144 %files
145 %defattr(644,root,root,755)
146 %doc README lib/en/*.{ps,txt}
147 %attr(0755,root,root) %{_bindir}/*
148 %{_libdir}/cook
149 %{_datadir}/cook
150 %{_mandir}/man*/*
151 %{_pixmapsdir}/cook.gif
152
153 %files doc-ps
154 %defattr(644,root,root,755)
155 %doc %{_datadir}/doc/%{name}-%{version}/*.ps.gz
156
157 %clean
158 rm -rf $RPM_BUILD_ROOT
This page took 0.029462 seconds and 2 git commands to generate.