]>
Commit | Line | Data |
---|---|---|
8f63209f | 1 | # |
2 | # Conditional build: | |
3 | %bcond_without tests # don't perform "make test" | |
4 | # | |
02871df0 | 5 | Summary: A file construction tool |
8b8c0c5e | 6 | Summary(pl.UTF-8): Narzędzie do konstrukcji plików |
02871df0 | 7 | Name: cook |
8f63209f | 8 | Version: 2.25 |
3bb797d3 | 9 | Release: 3 |
02871df0 | 10 | License: GPL |
11 | Group: Development/Building | |
02871df0 | 12 | Source0: http://www.canb.auug.org.au/~millerp/cook/%{name}-%{version}.tar.gz |
8f63209f | 13 | # Source0-md5: fd116da31c59c04abe41519fc131b504 |
17436374 | 14 | URL: http://www.canb.auug.org.au/~millerp/cook/ |
8f63209f | 15 | BuildRequires: bison |
cee9d67f | 16 | BuildRequires: gettext-tools |
8f63209f | 17 | BuildRequires: groff |
cce63b7c | 18 | BuildRequires: sharutils |
02871df0 | 19 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
20 | ||
21 | %description | |
22 | Cook is a tool for constructing files. It is given a set of files to | |
23 | create, and recipes of how to create them. In any non-trivial program | |
24 | there will be prerequisites to performing the actions necessary to | |
25 | creating any file, such as include files. The cook program provides a | |
26 | mechanism to define these. | |
27 | ||
28 | When a program is being developed or maintained, the programmer will | |
29 | typically change one file of several which comprise the program. Cook | |
30 | examines the last-modified times of the files to see when the | |
31 | prerequisites of a file have changed, implying that the file needs to | |
32 | be recreated as it is logically out of date. | |
33 | ||
34 | Cook also provides a facility for implicit recipes, allowing users to | |
35 | specify how to form a file with a given suffix from a file with a | |
36 | different suffix. For example, to create filename.o from filename.c | |
37 | ||
38 | - Cook is a replacement for the traditional make(1) tool. However, it | |
39 | is necessary to convert makefiles into cookbooks using the make2cook | |
40 | utility included in the distribution. | |
41 | ||
42 | - Cook has a simple but powerful string-based description language | |
43 | with many built-in functions. This allows sophisticated filename | |
44 | specification and manipulation without loss of readability or | |
45 | performance. | |
46 | ||
47 | - Cook is able to use fingerprints to supplement file modification | |
48 | times. This allows build optimization without contorted rules. | |
49 | ||
50 | - Cook is able to build your project with multiple parallel threads, | |
51 | with support for rules which must be single threaded. It is possible | |
52 | to distribute parallel builds over your LAN, allowing you to turn your | |
53 | network into a virtual parallel build engine. | |
54 | ||
55 | If you are putting together a source-code distribution and planning to | |
56 | write a makefile, consider writing a cookbook instead. Although Cook | |
57 | takes a day or two to learn, it is much more powerful and a bit more | |
58 | intuitave than the traditional make(1) tool. And Cook doesn't | |
59 | interpret tab differently to 8 space characters! | |
60 | ||
d313c58c JR |
61 | %description -l pl.UTF-8 |
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ć. | |
22048ac1 | 67 | |
d313c58c JR |
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. | |
22048ac1 | 71 | |
d313c58c JR |
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ć | |
22048ac1 | 75 | plik.o z plik.c). |
76 | ||
d313c58c JR |
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ą. | |
22048ac1 | 81 | |
d313c58c JR |
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. | |
22048ac1 | 85 | |
d313c58c JR |
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ł. | |
22048ac1 | 89 | |
d313c58c JR |
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. | |
22048ac1 | 94 | |
d313c58c JR |
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ż | |
22048ac1 | 99 | tradycyjne make(1). Poza tym Cook nie traktuje inaczej TAB-a i |
d313c58c | 100 | ośmiu spacji! |
22048ac1 | 101 | |
02871df0 | 102 | %package doc-ps |
103 | Summary: Cook documentation, PostScript format | |
8b8c0c5e | 104 | Summary(pl.UTF-8): Dokumentacja do cooka w formacie PostScript |
02871df0 | 105 | Group: Development/Building |
02871df0 | 106 | |
107 | %description doc-ps | |
108 | Cook documentation in PostScript format. | |
109 | ||
d313c58c | 110 | %description doc-ps -l pl.UTF-8 |
17436374 | 111 | Dokumentacja do cooka w formacie PostScript. |
02871df0 | 112 | |
113 | %prep | |
114 | %setup -q | |
115 | ||
116 | %build | |
51dd9b5b | 117 | %configure \ |
3bb797d3 JB |
118 | NLSDIR=%{_datadir}/locale \ |
119 | ac_cv_lib_rx_main=no \ | |
120 | ac_cv_header_rxposix_h=no | |
02871df0 | 121 | %{__make} |
122 | ||
8f63209f | 123 | %{?with_tests:%{__make} sure} |
124 | ||
02871df0 | 125 | %install |
126 | rm -rf $RPM_BUILD_ROOT | |
7da75aac PG |
127 | install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/cook/en/LC_MESSAGES,%{_mandir}/man1} \ |
128 | $RPM_BUILD_ROOT{%{_pixmapsdir},%{_datadir}/{locale,cook/en}} | |
129 | ||
0b1c0a86 | 130 | ln -s $RPM_BUILD_ROOT%{_mandir}/man1 $RPM_BUILD_ROOT%{_datadir}/cook/en/man1 |
02871df0 | 131 | |
51dd9b5b | 132 | %{__make} install \ |
133 | RPM_BUILD_ROOT=$RPM_BUILD_ROOT | |
7da75aac PG |
134 | |
135 | install cook.gif $RPM_BUILD_ROOT%{_pixmapsdir}/cook.gif | |
136 | ||
51dd9b5b | 137 | mv $RPM_BUILD_ROOT%{_libdir}/cook/en $RPM_BUILD_ROOT%{_datadir}/locale/ |
138 | rm -r $RPM_BUILD_ROOT%{_datadir}/cook/en | |
51dd9b5b | 139 | |
140 | %find_lang %{name} --with-gnome --all-name | |
02871df0 | 141 | |
7da75aac PG |
142 | %clean |
143 | rm -rf $RPM_BUILD_ROOT | |
144 | ||
51dd9b5b | 145 | %files -f %{name}.lang |
02871df0 | 146 | %defattr(644,root,root,755) |
51dd9b5b | 147 | %doc README lib/en/*.txt |
02871df0 | 148 | %attr(0755,root,root) %{_bindir}/* |
02871df0 | 149 | %{_datadir}/cook |
150 | %{_mandir}/man*/* | |
151 | %{_pixmapsdir}/cook.gif | |
152 | ||
153 | %files doc-ps | |
154 | %defattr(644,root,root,755) | |
51dd9b5b | 155 | %doc lib/en/*.ps |