]> git.pld-linux.org Git - packages/cook.git/blob - cook.spec
be5e167ecaa8a2ba50e0ee303b5ddba77d6faa1c
[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.UTF-8):   Narzędzie do konstrukcji plików
7 Name:           cook
8 Version:        2.25
9 Release:        3
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 BuildRequires:  sharutils
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
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ć.
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.UTF-8):   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.UTF-8
111 Dokumentacja do cooka w formacie PostScript.
112
113 %prep
114 %setup -q
115
116 %build
117 %configure \
118         NLSDIR=%{_datadir}/locale \
119         ac_cv_lib_rx_main=no \
120         ac_cv_header_rxposix_h=no
121 %{__make}
122
123 %{?with_tests:%{__make} sure}
124
125 %install
126 rm -rf $RPM_BUILD_ROOT
127 install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/cook/en/LC_MESSAGES,%{_mandir}/man1} \
128         $RPM_BUILD_ROOT{%{_pixmapsdir},%{_datadir}/{locale,cook/en}}
129
130 ln -s $RPM_BUILD_ROOT%{_mandir}/man1 $RPM_BUILD_ROOT%{_datadir}/cook/en/man1
131
132 %{__make} install \
133         RPM_BUILD_ROOT=$RPM_BUILD_ROOT
134
135 install cook.gif $RPM_BUILD_ROOT%{_pixmapsdir}/cook.gif
136
137 mv $RPM_BUILD_ROOT%{_libdir}/cook/en $RPM_BUILD_ROOT%{_datadir}/locale/
138 rm -r $RPM_BUILD_ROOT%{_datadir}/cook/en
139
140 %find_lang %{name} --with-gnome --all-name
141
142 %clean
143 rm -rf $RPM_BUILD_ROOT
144
145 %files -f %{name}.lang
146 %defattr(644,root,root,755)
147 %doc README lib/en/*.txt
148 %attr(0755,root,root) %{_bindir}/*
149 %{_datadir}/cook
150 %{_mandir}/man*/*
151 %{_pixmapsdir}/cook.gif
152
153 %files doc-ps
154 %defattr(644,root,root,755)
155 %doc lib/en/*.ps
This page took 0.084181 seconds and 2 git commands to generate.