-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
7257 lines (5054 loc) · 253 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2017-11-08 trobador <occitan@esperanto.org>
Version 2.1rc2 makepp-2.1rc2.tgz, technically 2.0.99.2 on sourceforge & CPAN.
* Mpp/Text.pm:
* makepp.spec:
* META.yml: New version
* Mpp/Subs.pm (f_shell): A busy system can have more than 3 interrupts. (Thanks to R. Rüdenauer)
* pod/makepp_functions.pod:
* pod/html/html.pl: Nice quoting everywhere
* pod/html/makepp.less:
* pod/html/makepp.css: Nicer pre.
2017-08-18 trobador <occitan@esperanto.org>
* pod/html/makepp.less:
* pod/html/html.pl: Fix bottom gray border with modern css.
2017-08-15 trobador <occitan@esperanto.org>
* Mpp/Makefile.pm: Better diagnostic.
* pod/makepp_functions.pod: Explain implicit call better.
* pod/html/html.pl: Take version from Mpp::Text
2017-08-11 trobador <occitan@esperanto.org>
Version 2.1rc1 makepp-2.1rc1.tgz, technically 2.0.99.1 on sourceforge & CPAN.
* Mpp/Text.pm:
* makepp.spec:
* META.yml: New version
* t/run_tests.pl (slow_rmtree): Could remain in wrong dir.
* t/additional_tests/2004_12_20_errors.test: Deal with Win path.
* t/additional_tests/2008_05_21_install.test: Exit in correct dir.
2017-08-05 trobador <occitan@esperanto.org>
* Mpp/Event.pm: Work around Docker's zombie reaper problem.
* Mpp/BuildCacheControl.pm: 5.24 map doesn't localize $_ on goto.
* *: Use 3-arg open to cope with funny file-names.
* pod/makepp_compatibility.pod: Up to date with Perl versions.
2017-07-27 trobador <occitan@esperanto.org>
* t/spar, t/additional_tests/spar_unix.test: Add directory creation
2016-09-28 pfeiffer <occitan@esperanto.org>
* Mpp/Text.pm
* Mpp/Recursive.pm (requote): Move to here.
2016-09-12 pfeiffer <occitan@esperanto.org>
* Mpp/BuildCache.pm
* Mpp/BuildCacheControl.pm
* pod/makepp_extending.pod
* t/run_tests.pl
* t/builtins.test
* t/log_graph.test
* t/makeppreplay.test
* t/perl.test
* t/additional_tests/2006_02_18_makeppbuiltin.test
* config.pl
* install.pl: Prepare for optionally missing . in @INC as of 5.26.
2016-09-06 pfeiffer <occitan@esperanto.org>
* Mpp/CommandParser/Gcc.pm (xparse_command): Fix -I handling.
* makepp
* Mpp/Subs.pm
* Mpp/Event.pm
* Mpp/Recursive.pm (Recursive): Move rarely needed Event code to Recursive.
2015-08-09 trobador <occitan@esperanto.org>
* pod/makepp_compatibility.pod
* pod/html/*: Test Perl 5.22 and use some html5.
2015-07-13 trobador <occitan@esperanto.org>
* Mpp/Makefile.pm
* Mpp/CommandParser/Gcc.pm
* Mpp/Scanner.pm: Pick up paths from env vars.
* Mpp/Rule.pm: Forgotten symbol rename.
2015-06-14 DP <occitan@esperanto.org>
* Mpp/Subs.pm(@system_*_dirs): Only pick up existing dirs.
(f_infer_objects): Wrongly terminated regexps.
2015-05-15 DP <occitan@esperanto.org>
* Mpp/Makefile.pm: Fix against nested expansion. (Thanks to Max Baker)
2014-09-12 Max Vozeler <xam@debian.org>
* pod/makepp_extending.pod:
* pod/makepp_variables.pod: Fix occasional problem with ambiguous markup.
2014-08-13 DP <occitan@esperanto.org>
* makepp (build_target_done):
* Mpp/BuildCache.pm (get): Use "info:" instead of warning with "(OK)"
2014-08-03 DP <occitan@esperanto.org>
* *: Harmonize diagnostic printing and switch it to GNU style.
2014-07-20 DP <occitan@esperanto.org>
* Mpp.pm
* Mpp/Makefile.pm
* makepp: Add --warn-undefined-variables. Combine a few our declarations.
2014-07-08 DP <occitan@esperanto.org>
* Mpp/Makefile.pm (grok_rule): Crazy indentation works.
2014-07-03 DP <occitan@esperanto.org>
* *: Pattern rules can pick up phony dependencies (gmake compatibility), rule option :no-phony prevents that.
(no_implicit_load): Also apply to directories created later.
* Mpp/Cmds.pm (&template): handle same vs. different syntax beginnings.
2014-06-23 DP <occitan@esperanto.org>
* Mpp/Makefile.pm (grok_assignment): Strip only the last newline in define (gmake compatibility).
(grok_rule): Debug the found rule.
2014-06-10 DP <occitan@esperanto.org>
Snapshot 2.0.98.5
* Mpp/Cmds.pm: Eliminate new 5.20 warning, that CPAN counts as failed test.
(c_template): New macro @include(filename)@.
* Mpp/Makefile.pm (read_makefile)
* Mpp/Subs.pm: Better show where errors come from.
2014-03-19 DP <occitan@esperanto.org>
* Mpp/FileOpt.pm (set_rule): A late found rule for a different dir can override a pattern rule.
2014-01-15 DP <occitan@esperanto.org>
* Mpp/CommandParser/Esql.pm
* Mpp/CommandParser/Gcc.pm: Treat C_INCLUDE_PATH et al., -static and -l: and optimize. Few API changes.
* Mpp/Text.pm (split_path): Extra arg for parsing native vars even on Cygwin.
2013-12-01 DP <occitan@esperanto.org>
* Mpp/Text.pm:
* Mpp/*.pm: Parens now nest in expressions.
Single quotes now ignore \.
unquote: no longer works on regexp vars.
(r)find_unquoted: rename *index_ignoring_quotes.
2013-10-13 DP <occitan@esperanto.org>
Snapshot 2.0.98.4
* config.pl
* t/run_all.t
* t/run_tests.pl
* t/**/*test: Improve hinting and always show it, except in --test. Try harder to get test results.
* pod/html/html.pl (emit_item_tag): Put Compatibility with Incompatibilities.
2013-08-18 DP <occitan@esperanto.org>
* Mpp.pm
* Mpp/FileOpt.pm
* Mpp/Makefile.pm
* Mpp/Repository.pm
* Mpp/Rule.pm
* Mpp/Scanner.pm
* makepplog: New var MAKEPP_DEBUG and show effect of mppl -c
* makepp_builtin_rules.mk: Evaluate some vars immediately.
2013-07-21 DP <occitan@esperanto.org>
* Mpp/Makefile.pm (grok_rule): Allow % to be inside make-expression.
* Mpp/Text.pm (index_ignoring_single_quotes): Eliminate.
(index_ignoring_quotes, split_on_whitespace): New type-option.
2013-07-05 DP <occitan@esperanto.org>
* install.pl
* config.pl: Installation defaults for html-doc and man have changed slightly.
2013-05-19 DP <occitan@esperanto.org>
* pod/makepp_variables.pod: Document the details of rc-style
substitution and how to deal with border cases.
* pod/makepp_builtins.pod: Better structure and sort -t need not modify $_.
2013-05-09 DP <occitan@esperanto.org>
* Mpp.pm (perform): Continue --loop after error.
* Mpp/Glob.pm: Don't fully qualify own $allow_dot_files.
* Mpp/File.pm (mark_as_directory): Obtain FULLNAME only once.
* makeppinfo: With --force show unremembered_SIGNATURE instead of warning.
2013-04-22 DP <occitan@esperanto.org>
* Mpp/FileOpt.pm (exists_or_can_be_built): Revert and improve, we do need to recurse.
* t/run_tests.pl
* t/**/*.test: Fix globbing for answers. Check signatures after mpp. New hook $mod_answer.
* makepp (parse_command_line): Simpler way to avoid wrong "used once" warning.
* config.pl: Win doesn't grok prefix export notation.
2013-04-14 DP <occitan@esperanto.org>
* makepp: Query build cache only if we use one. Move some global bc and rep symbols and functions where they belong.
* Mpp.pm (perform): Use map, to avoid spurious exit code.
* Mpp/Rule.pm (DefaultRule::execute): Fix returning status.
* Mpp/DB.pm: New debug module.
2013-03-30 DP <occitan@esperanto.org>
* makepp
* Mpp/Rule.pm: find_all_targets_dependencies returns them already sorted. sorted_dependencies wants list, not array.
* Mpp/Subs.pm (infer_objects): optimize
* makepp_builtin_rules.mk: Let infer_objects rules respect makepp_percent_subdirs.
* install.pl
* config.pl: Give more help about changing the perl binary.
2013-03-05 DP <occitan@esperanto.org>
Snapshot 2.0.98.3
2013-03-04 DP <occitan@esperanto.org>
* Mpp/Rule.pm (load_scaninfo_): Make private, don't force finding
remembered deps, which may not be buildable any more
(Mpp::DefaultRule::execute): No need for when_done.
* Mpp/FileOpt.pm (exists_or_can_be_built): Handle repository files
differently, since a dep there may not be valid here (hidden by
chmod 0).
(set_additional_dependencies): Remove and splice into grok_rule.
* Mpp/Glob.pm: Optimize.
* LICENSE: Add copyright because Debian wants it.
2013-02-16 DP <occitan@esperanto.org>
* *: Consistent and documented handling of perl instance including
the possibility to install against /usr/bin/env.
* Mpp/Rule.pm: Override-variable TMP.
2013-01-31 DP <occitan@esperanto.org>
* Mpp/Text.pm
* makepp*: Fully move VERSION to Mpp::Text.
* install.pl
* config.pl: Fix help.
2013-01-20 DP <occitan@esperanto.org>
* Mpp/Recursive.pm
* Mpp/Rule.pm
* Mpp.pm: Move actual building to perform and implement --loop.
* Mpp/Subs.pm (f_find_{first_}upwards): Don't find file above ROOT, if present.
* additional_tests/2003_10_11_idash.test: Wait for timestamp only if something was built.
2013-01-08 DP <occitan@esperanto.org>
* install.pl: Gzip manfiles if local system does that, Debian policy.
2012-12-29 DP <occitan@esperanto.org>
* Mpp/Signature/c_compilation_md5.pm
* t/md5.test: New option makepp_signature_C_flat.
2012-12-28 DP <occitan@esperanto.org>
* makepp
* Mpp/Makefile.pm
* Mpp/Recursive.pm
* Mpp/Rule.pm
* Mpp/Subs.pm
* t/include.test: Defer decision about inexistant/stale include
till end of makefile and reload if needed.
2012-11-12 DP <occitan@esperanto.org>
* Mpp/BuildCache.pm
* makepp: Rename build_cache_error_hook to Mpp::BuildCache::error_hook.
Move build_dependencies_done code to new Mpp::BuildCache::get. Optimize.
* Mpp.pm: Rename *hits to $Mpp::{BuildCache,Repository}::hits.
Make final print readable.
* Mpp/FileOpt.pm (grok_build_info_file): Rewrite as parser.
* Mpp/Rule.pm (execute): Suppress stale rep symlink warning.
2012-11-02 DP <occitan@esperanto.org>
* *: All pre-2.0 features which issued deprecated-warnings are
eliminated, as are $Mpp::Makefile::legacy_functions and
$MAKEPP_INSTALL_OLD_MODULES.
2012-10-25 DP <occitan@esperanto.org>
Snapshot 2.0.98.2
* Mpp/Text.pm: Handle new version scheme.
* Mpp/Cmds.pm: Native Windows fails when closing --inpipe.
* Mpp/Subs.pm: Log $(shell) command. Use anonymous file handles to prevent races in async event handlers.
* Mpp/Repository.pm
* Mpp/CommandParser/Vcs.pm
* Mpp/Event.pm: Use anonymous file handles to prevent races in async event handlers.
* t/dry_run_what_if.test: Wait for child process to avoid random fail under high load.
2012-10-16 DP <occitan@esperanto.org>
* Mpp/Repository.pm (get): Do not propagate random $@.
2012-10-14 DP <occitan@esperanto.org>
Snapshot 2.0.98.1
* Mpp/Repository.pm: Cope with rule producing symlink in repository.
* Mpp/FileOpt.pm (signature): Dangling symlinks also produce a signature, since they are legal (albeit funny) files.
* Mpp/Scanner.pm
* Mpp/Rule.pm: Optimize small functions.
* Mpp/Text.pm
* VERSION: n.m.98.i are snapshots, and n.m.99.i a release candidate.
2012-08-30 DP <occitan@esperanto.org>
* t/*: Use our built in commands for tests.
* Mpp/Cmds.pm (c_touch): utime not working as documented in 5.8.0.
* makepp: Simplify Win workaround.
2012-07-05 Mike Frysinger <vapier@gentoo.org>
* install.pl: Fix DESTDIR.
2012-06-09 pfeiffer <occitan@esperanto.org>
* *: Eliminate need for HP/UX hack, which was slightly buggy.
* Mpp/File.pm
* Mpp/Subs.pm: Make stat_exe_separate a constant.
* Mpp/Makefile.pm: Use possibilities of PerlIO.
2012-05-29 pfeiffer <occitan@esperanto.org>
* makeppinfo (--unremembered): New option.
* Mpp/Makefile.pm (read_makefile): Run toplevel &cmds in correct dir.
* *: Remove more 5.6-isms.
* VERSION: i.j.9beta is development for i.j+1.
2012-05-23 pfeiffer <occitan@esperanto.org>
* Mpp/Text.pm
* makepp*
* Mpp/BuildCacheControl.pm
* install.pl: Make sure help option is consistent with pod, and reflects if man and/or html is installed.
* Mpp.pm: Fallback to --verbose if log file not writable.
2012-05-15 pfeiffer <occitan@esperanto.org>
* *: use v5.8 and eliminate many v5.6-isms
2012-05-12 pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm
* makepp: This "x:y;a=1 cmd"' is not a target specific assignment.
Accept -f -, both for gmake test suite. (Thanks to Ben S.)
* makeppreplay (--sed): New option.
* Mpp/FileOpt.pm: Store build info for mppr, even on initial fail.
* Mpp/Rule.pm: Use valid attribute.
2012-03-25 pfeiffer <occitan@esperanto.org>
* *: Upcase "GNU".
2012-03-19 pfeiffer <occitan@esperanto.org>
Version 2.0 makepp-2.0.tgz on sourceforge & CPAN.
* makepp: Environment $ROOT is harmful to our builtin.
2012-03-04 pfeiffer <occitan@esperanto.org>
Version 2.0rc3 makepp-2.0rc3.tgz, technically 1.50-120304:20-0228:1-0207:5 on sourceforge & CPAN.
* *: Spellcheck pod and comments.
2012-02-28 pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm (expand_expression): In substitution reference add % to both or none. (Bug 3488851)
(expand_variable): Extend builtin vars as though they were "=" assigned. (Bug 3488858)
* Mpp/Rule.pm (save_build_info_tag_): Don't skip INCLUDE_PATHS if it contains only undef.
* pod/html/Pod/Html.pm
* pod/html/html.pl: Bundle 1.11 as newer ones are not compatible and broken. (Perl bug 110520)
2012-02-14 pfeiffer <occitan@esperanto.org>
* t/run_tests.pl (have_cc):
* t/**/*.test: Check for a C compiler, eliminating CPAN testers' false negatives.
2012-02-08 pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm (_read_makefile_line_stripped_1): Warn about multiline "# ... $[X]".
* t/makeppreplay.test: Give hint about ccache bug (found by Mike Frysinger).
* *: Fix many typos.
2012-01-22 pfeiffer <occitan@esperanto.org>
* pod/html/html.pl:
* pod/html/makepp.less: Create valid xhtml 1.1.
2012-01-19 pfeiffer <occitan@esperanto.org>
* pod/html/makepp.{css,js}:
* pod/html/html.pl: Add button to search and abbrevs to nav bar, remember its side.
* install.pl: Convert index to better html, it was useless as Man anyway.
* pod/makepp_faq.pod: Add safety question.
2012-01-11 pfeiffer <occitan@esperanto.org>
Version 2.0rc2 makepp-2.0rc2.tgz, technically 1.50-120111:3-0106:1-111204:2 on sourceforge & CPAN.
* makeppgraph (html): Use same folding cursors as new web site.
* Mpp/Lexer.pm (lex_rule): Don't fail if shell command not understood.
* Mpp/Makefile.pm (grok_rule): Singular $(ouptut) or $(target) also prevent legacy fallback.
* t/additional_tests/xml.test: Only run if parser is free of warnings.
* pod/*: Fixed broken links and cosmetic changes.
* pod/html/*: Valid compact xhtml, tabs as sprite, refactored, and fixed links.
2012-01-06 pfeiffer <occitan@esperanto.org>
* install.pl:
* pod/html/*: New doc and website design. Thanks a lot to 조연희 (Jo Younhee) for the redesign of the camel at work logo with a hand crafted font! And thanks to html-templates for the base artwork, which I modernized with the help of {less}.
* pod/*: Some cleanup.
2011-12-04 pfeiffer <occitan@esperanto.org>
* Mpp/Subs.pm (make): Provide documented statement.
* t/additional_tests/xml.test: Only run if parser works.
2011-11-25 pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm
* Mpp/Text.pm
* Mpp/Subs.pm: Private extra parameter to filesubst, to handle $* correctly.
* makepp: Turn pod into comments as this hid makepp.pod.
* control: Create deb package.
2011-11-20 pfeiffer <occitan@esperanto.org>
Version 2.0rc1 makepp-2.0rc1.tgz, technically 1.50-111120:8-1107:3-1030:7 on sourceforge & CPAN.
Beware: this release has a more powerful signature syntax, which is not understood by older versions.
So don't call an older mpp on things built with this version, which includes from a repository you built in.
* Mpp/Rule.pm
* Mpp/Subs.pm: Statement signature now understands the keyword override.
* Mpp/Signature/xml_space.pm
* Mpp/Signature/xml.pm: New modules
* makeppinfo: Handle directories by showing every file and warn if no build info.
2011-11-07 pfeiffer <occitan@esperanto.org>
* Mpp/Signature.pm: C can now also be extended with filename regexps.
* Mpp/Rule.pm: Rescan on unknown sig method from build info instead of dying.
* Mpp/CommandParser/Vcs.pm: Replace verilog_simulation_md5 by simple sig spec C.v.
2011-10-30 pfeiffer <occitan@esperanto.org>
* Mpp/Rule.pm (set_signature_class): Incorporates
set_signature_method. Always store name and method together, so
mppr can pick it up from the build info and sign correctly.
(load_scaninfo_single): Rescan if sig method changed, because that
obsoletes old sigs. Instead of exactly 'sys' & 'lib' to avoid
should_find, avoid it only if those strings are contained,
allowing various tags with this property.
* Mpp/Scanner/Esqlc.pm:
* Mpp/CommandParser/Esql.pm (usersys): New tag.
* Mpp/CommandParser/Gcc.pm (tags): New overridable method.
* Mpp/Makefile.pm:
* Mpp/Signature.pm (get): New signature function allows additional
suffixes and c_compilation_md5 can be called as C.
* makeppinfo: Fix undef warning.
2011-09-29 pfeiffer <occitan@esperanto.org>
* *: $Mpp::BuildCheck::default and $Mpp::Signature::default replace
default_build_check_method and default_signature. Statements build_check and signature now
understand the keyword global. Use them for option handling.
* Mpp/CommandParser/Gcc.pm: Handle some weird icc/icl options.
* makeppinfo: New option -d, --dates, --decode-dates.
2011-09-19 pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm:
* Mpp/Subs.pm (f_call): Expand macro normally even in $[call], because it can't easily contain $[1].
* makeppinfo: Now --traverse works even when SORTED_DEPS is not being displayed. With --force
also show the current SIGNATURE.
2011-09-15 pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.110915.tgz, version 1.50-110915:6-0827:1-0806:6 on sourceforge & CPAN.
* makepp ($global_build_cache): Moved to $Mpp::BuildCache::global.
Let appropriate s_ subs handle some options.
* Mpp/Makefile.pm (read_makefile):
* Mpp/Subs.pm (s_build_cache): Keywords can get passed to s_ subs, this one understands: global.
2011-09-08 pfeiffer <occitan@esperanto.org>
* Mpp/Subs.pm:
* Mpp/Makefile.pm (read_block): Handle all multiline statements and give better diagnostics when incomplete.
2011-08-27 pfeiffer <occitan@esperanto.org>
* Mpp/Cmds.pm,
* Mpp/Makefile.pm,
* Mpp/Subs.pm: Turn around parsing of makefiles, allowing spaces in var names.
Turn define, export & global into internally processed keywords.
2011-08-06 pfeiffer <occitan@esperanto.org>
* Mpp/Subs.pm: Recognize clang, icc & icl. Optimize searching upwards for device boundary.
* makepp (makepprc): Optimize searching upwards for device boundary.
* Mpp/Lexer.pm: Check explicitly for sh -c vs. sh script -opt.
* makeppclean: New option -d, --empty-directories
* install.pl: Add rel-links.
2011-07-01 pfeiffer <occitan@esperanto.org>
* Mpp/File.pm (relative_filename): Use new dir attribute xABSOLUTE
to have other dirs than $root (e.g. c:, /cygdrive/c, $HOME/.. and
$(ROOT)/..) for preferring absolute filenames, to increase build
cache consistency.
* *: In various classes prefix undef/exists booleans with 'x':
xASSUME_NEW/ASSUME_CHANGED, xDELETABLE, xEXISTS,
xIN_REPOSITORY/DIR_IN_REPOSITORY, xLOGGED, xMAKEPPRC,
xMAKEPP_DELETABLE, xMULTIPLE_RULES_OK, xNO_GCC, xPHONY/IS_PHONY,
xPREFERRED, xRECURSIVE_MAKE, xSCANINFO_UNCACHEABLE, xTEMP/IS_TEMP,
xDELETABLE, xUPDATE_BUILD_INFOS/NEEDS_BUILD_UPDATE, xREFERENCED,
xNO_IMPLICIT_LOAD, xLOOKED_FOR_SUBDIRS, xIN_VERBATIM_BLOCK
* Mpp/Event.pm (start): Do real exec on Cygwin and MSYS.
* makepplog (REMOVE): Also give the reason, which increased log version to 3.
2011-06-23 pfeiffer <occitan@esperanto.org>
* pod/makepp_index.pod: New overall index.
* pod/makepp_compatibility.pod: Add 5.12.4 and 5.14.1.
2011-06-21 pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.110621.tgz, version 1.50-110621:8-0605:1-0507:2 on sourceforge & CPAN.
* Mpp/Makefile.pm (expand_text): Also handle new args separator in
opposite case (thanks to T. Helms).
* Mpp/Glob.pm (wildcard_do): Replaces wildcard_action and
needed_wildcard_action. If wildcard ends with slash, apply only
to dirs (needed by Linux kernel). Extra arg to block only if not
a wildcard.
* Mpp/File.pm (path_file_info): Mark names with trailing slash as dir.
* Mpp/Rule.pm (set_{build_check,signature}_method_default):
Eliminate almost useless functions.
* Mpp/Recursive.pm
* recursive_makepp: Move MAKEPP_IGNORE_OPTS to makepp, as it
caused loading this before $depth initialized. Fix $depth for
--hybrid.
2011-06-05 pfeiffer <occitan@esperanto.org>
* Mpp/File.pm (read_directory): Use the possibly newly created DIRCONTENTS, to not lose our changes.
* Mpp/Makefile.pm
* Mpp/Repository.pm
* Mpp/Subs.pm: Emulate VPATH and vpath
2011-05-20 pfeiffer <occitan@esperanto.org>
* Mpp/Recursive.pm
* install.pl: Try to have $(MAKE) without space when installed.
* pod/makepp_compatibility.pod: Add 5.14.0.
2011-05-07 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm (expand_variable): Pass lineno to $&, ...
* Mpp/Subs.pm ($&, ...): Warn with lineno.
* Mpp/Text.pm (format_exec_args): Pass comment sign to shell.
* makepp (build_target_done): Say when there is no rule, instead of complaining about phony.
* Mpp/Glob.pm (zglob_fileinfo): Commas are no longer evil.
* makepp_builtin_rules.mk: Don't use rc-substitution, which might be off.
* pod/makepp_compatibility.pod: Add V5.12.3
2011-04-17 Daniel Pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.110417.tgz, version 1.50-110417:8-0123:1-0116:8 on sourceforge & CPAN.
* Mpp/Makefile.pm: More efficient check for makepp_simple_concatenation.
(setup_environment): Since exporting MAKEFLAGS, we are sure to have EXPORTS.
(expand_expression): Pass f_ arg as string or ref.
* Mpp/Subs.pm (arg, args): New functions.
(f_*): Take a reference to expand allowing correct comma-splitting.
(f_call): Correctly handle $0, $1, ... as normal variables.
$(macro arg1,arg2) is now equivalent to $(call macro,arg1,arg2) if
$(macro) is defined. Thanks to Clemens Hintze for these ideas.
* makeppinfo,
* makeppreplay,
* Mpp.pm: Move common use statement to Mpp.
2011-01-23 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/CommandParser/Esql.pm (xparse_command): 5.13.7 no longer
understands binding =~ to two alternate regexps in a ternary
operator.
* pod/makepp_build_check.pod:
* makeppinfo: Improve makeppinfo and its doc, expecially for
understanding build check methods. Also pair up ENV_DEPS & ENV_VALS.
2011-01-16 Daniel Pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.110116.tgz, version 1.50-110116:13-101224:4-1210:6 on sourceforge & CPAN.
* Mpp/Scanner.pm (find): Initial suffix '/' means: try others only
for a name that has no suffix.
* CommandParser/Esql.pm, Mpp/Scanner/Esqlc.pm: Handle all known
kinds of embedded SQL preprocessors. Rename to Esql as the
commands are not specific to C.
* makepp, Mpp/Recursive.pm, recursive_makepp,
* t/recursive_variants.test: New option --hybrid and put a brake
on deep recursion.
* Mpp/CommandParser.pm, Mpp/FileOpt.pm, Mpp/Subs.pm,
* makepp_builtin_rules.mk: Workaround for bug in new Cygwin (where
stat() rarely reports an inexistent file to be a symlink) lead to
cleaner implementation of $(phony xyz): xyz.exe
* Mpp/Makefile.pm, Mpp/Fixer/Automake.pm, Mpp/Fixer/CMake.pm
* makepplog, install.pl: New directory Fixer, to also fix CMake
makefiles avoiding recursion.
* config.pl: New version scheme caused an invalid installation
makefile. (Thanks to Thomas Kluge)
* t/additional_tests/2003_08_13_load_makefile_quotes.test:
* t/wildcard_repository.test: NFS can use strange uid on own files.
2010-12-24 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/File.pm (mark_as_directory): Cache all upwards paths as
otherwise a relative path might include ../thisdir (thanks to
andrewdonkin).
(relative_filename): Use this caching to simplify very much.
* Mpp/Makefile.pm: Warn about unsupported VPATH (thanks to Harald
van Dijk) and ignore space after :build_cache.
* Mpp/Repository.pm: Count mkdir failure as build error.
* Mpp/Scanner/C.pm: Inside a <> include don't fall back to ""
(cygwin/config.h caused a warning).
* Mpp/Subs.pm (s_include): Also handle s__include.
2010-12-10 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm Fix regression from change to Mpp, whereby
reload did not clear variables.
(expand_variable): Move sub expansion here.
* Mpp/Text.pm (index_ignoring_quotes, hash_neq): Accept 3rd argument.
(max_index_ignoring_quotes): Optimize.
(split_on_whitespace): Also parens delimit shell commands.
* Mpp/Subs.pm (f_map): Fix condition.
* Mpp/FileOpt.pm: Actually drop old rule on reload.
* Mpp/AutomakeFixer.pm (clean): Rename remove_automake_junk,
handle empty subdir list and don't cheat by calling make.
* Mpp/Recursive.pm: In traditional, start each make with a
different logfile, and log it so you have a chance to find it.
* Mpp/CommandParser.pm:
* Mpp/Lexer.pm: Make found dependencies optional because in a
complex action script not all commands are necessarily run. Also
parse backquoted commands.
* Mpp/Makefile.pm:
* Mpp/Rule.pm (find_all_targets_dependencies): Remember expansion
so functions won't be evaluated a 2nd time.
* Mpp/BuildCheck/target_newer.pm (changed_dependencies): May not
have been built yet.
* makeppclean: New or changed options -k, -l & -m.
2010-11-19 Daniel Pfeiffer <occitan@esperanto.org>
* *: Reserve the term parse for command arguments. Everything
else is now grokked.
2010-11-17 Daniel Pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.101117.tgz, version 1.50-101117:18-1018:5-0929:8 on sourceforge & CPAN.
* *: Cleanly distinguish between lexing, parsing and scanning.
Fix skip-word without recursion and provide new variant for
(sub)shell.
* pod/makepp_compatibility.pod: Add 5.12.2 and more CPAN-tester
results.
2010-10-18 Daniel Pfeiffer <occitan@esperanto.org>
* *: Rename ActionParser to Lexer and only refer to it by that
name, to get rid of previous chaos.
* Mpp/ActionParser/Specific.pm, Mpp/ActionParser/Legacy.pm:
Deprecate useless subclasses that make it hard to get skip-word
right.
* Mpp/Rule.pm (scan_action): Remove unused func.
(find_all_targets_dependencies): Fix missing return value (thx to
thebamaman).
2010-09-29 Daniel Pfeiffer <occitan@esperanto.org>
* *: @Mpp::Text::N replaces individual numeric constants.
* Mpp/FileOpt.pm (load_build_info_file):
* makeppinfo: With -f, --force show outdated info.
2010-09-18 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/File.pm (path_file_info): On Win translate \\ownhost\c$ to
c: to find same file under different names and reduce $ problems.
* Mpp/Cmds.pm (c_cp): Respect $MAKEPP_LN_CP.
(c_mkdir): Handle --mode like Unix variant.
2010-09-13 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Text.pm (@common_opts): Also handle --help, getting it from
__DATA__ everywhere.
* Mpp.pm (perform): Don't duplicate error message at end.
* Mpp/Makefile.pm (skip_makefile_until_else_or_endif): Statements
like sub must end with space -- don't be fooled by a rule for
sub-target.
* makepp: Don't silently ignore gmake opts. Instead
$MAKEPP_IGNORE_OPTS allows controlling that, even -R is possible.
2010-09-03 Daniel Pfeiffer <occitan@esperanto.org>
* makepp (build_dependencies_done): Don't remove a file that
wasn't there when we last checked, warn if it appeared.
* Mpp/Recursive.pm:
* recursive_makepp: Fix protocol error on -j failure.
* Mpp/Subs.pm (f_origin): Same order as expansion and 'global'.
* Mpp/Makefile.pm (MAKEPP_VERSION): New variable.
($if_re): Refactor repeated regexp.
*: Move version (and beta counting, now same for all progs and
like snapshot names) to Mpp::Text. Short opt -V.
2010-08-22 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/ActionParser.pm (parse_rule): Handle Shell keywords
directly, so we catch variable assignment before the command.
* Mpp/Scanner/C.pm (xscan_file): Have an informative warning about
ignoring #include MACRO.
* Many small compatibility changes:
Provide functions abspath, realpath, and, or.
Function suffix returns the dot too.
Always set MAKEFLAGS.
Allow special variables to be empty outside of rules.
Allow depending on a phony that has no rule.
Allow action prefix +.
Implement --no-print-directory.
New option --last-chance-rules.
Option --no-warn centrally swallows every warn().
Keep option handlers after 1st getopts, any might come recursively.
Accept all unimplemented POSIX/gmake options silently.
2010-07-16 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/File.pm (STAT_UID, is_executable): Remove unused functions.
(lstat_array): Skip STAT_UID.
(read_directory): Keep the stats of files that were there
before. (Reported by Clint O.)
* install.pl: Start move to new pod2html ids and some fixes.
* pod/*.pod: Complete documentation of all options. Generate more
readable index using new pod2html ids for all pods where it makes
sence.
* makepp: Complete --help generated from pod/makepp_command.pod.
2010-06-01 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Signature/c_compilation_md5.pm (md5sum_c_tokens): Find
terminating ' to avoid missed rebuilds.
* Mpp/Rule.pm (execute_command): fork/exec on Cygwin and MinGW
like on Unix.
* Mpp/CommandParser/Gcc.pm (xparse_command):
* Mpp/Scanner.pm: Eliminate useless add_dependency.
* Mpp/Text.pm (pattern_substitution): Optimize.
* pod/makepp_compatibility.pod: Add 5.12.1 and more CPAN-tester
results.
2010-04-22 Daniel Pfeiffer <occitan@esperanto.org>
Snapshot makepp-1.50.100422.tgz, version 1.50-04221-02242-02094 on CPAN.
* Mpp/Utils.pm (Mpp::Rewrite::cwd): Work around a 5.12.0 crash.
* install.pl, pod/makepp_compatibility.pod: Mention 5.12 as working.
* pod/makepp_command.pod: Mention --sandbox as a workaround for -j
on native Win.
2010-02-25 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm (parse_rule):
* t/rule_include.test: Use :scanner none if :include file found.
* makepp (parse_command_line): Order options alphabetically.
* makepplog (instdir): Erstwhile workaround for 5.11 deprecation.
* pod/makepp_rules.pod, pod/makepp_faq.pod: Update about new
behaviour of :include.
* pod/makepp_repositories.pod: Remove long outdated limitation of
only parsing the 1st command of an action. Explain about
--dont-read.
* pod/makepp_compatibility.pod: Add more tested versions.
2010-02-09 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Makefile.pm (parse_rule):
* makepp (build_target_done):
* Mpp/FileOpt.pm (set_additional_dependencies): Handle :include of
generated dependency file. (Suggested by Yoni Londner)
(get_rule): Remove unneeded label colliding with a reserved word
in Perl 5.11.
* Mpp/Subs.pm (scanner_none):
* Mpp/ActionParser.pm (parse_rule): Keep promise that scanner none
shuts up.
* Mpp/Rule.pm (sorted_dependencies): Use only NAME for same
dependency given multiply.
* t/rule_include.test: New test.
* install.pl (highlight_keywords): Handle :include & :last_chance.
2009-12-27 Daniel Pfeiffer <occitan@esperanto.org>
* Mpp/Subs.pm (scanner_skip_word): Make it work per rule.
(s_register_scanner): Make prefix "scanner_" optional and allow
"-".
* Mpp/Makefile.pm (parse_rule): Allow "-" in :scanner.
* Mpp/ActionParser.pm (parse_rule): Suppress "action scanner not
found" warning with skip-word. Clearer suggestion.
* Mpp/Rule.pm (parser): Simplify.
* t/additional_tests/2009_12_27_skip_word_unix.test: New test.
* pod/makepp_command.pod: Mention primacy of RootMakeppfile.
* pod/makepp_rules.pod: Explain pitfall of :scanner.
* pod/makepp_scanning.pod: Mention all command parsers explicitly.
* pod/makepp_statements.pod (register_scanner): Mention changes.
2009-09-25 Daniel Pfeiffer <occitan@esperanto.org>