-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
1327 lines (1006 loc) · 49.7 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
2009-05-13 <[email protected]>
* Performance bugfix (local_package.py). Was quadratic with number
of directories.
* Various minor performance tuning (using generators more now).
2008-01-24 Joerg Faschingbauer <[email protected]>
* Renamed libconfix.frontends.confix to
libconfix.frontends.confix2.
2008-01-15 Joerg Faschingbauer <[email protected]>
* Merged from
https://confix.svn.sourceforge.net/svnroot/confix/confix/branches/RB-2.1,
rev 447:
* InstalledNode.short_description() was left abstract; fixed.
* add test libconfix/core/filesys/tests/scan.py
* small restructuring in plugins.c.linked (deep vs flat linking)
* index.html
* converted to validated XHTML (hooray)
* content fixed to give potential users a chance to understand
what I mean
2007-11-26 Joerg Faschingbauer <[email protected]>
* Fixed bug "[ 1834223 ] Missing test for duplicate
PROVIDE_SYMBOL"
2007-11-21 Joerg Faschingbauer <[email protected]>
* confix2.py --overlayroot
Makes it possible to "overlay" the package with a separate tree
that contains the Confix2.{pkg,dir} files.
* Largely eliminated the --use-libtool parameter, by scanning the
generated configure.ac file for AC_PROG_LIBTOOL. --use-libtool
is still necessary for the damn ConfixSetup default. Thus
consider "[ 1834227 ] ExplicitCSetup and use_libtool" fixed.
* test cleanup in the outside 'tests' directory: removed
tests/make and tests/plainfile
2007-10-23 Joerg Faschingbauer <[email protected]>
* Fixed bug "[ 1817734 ] Relocated headers leave require objects
at source module"
2007-10-22 Joerg Faschingbauer <[email protected]>
* removed libconfix/testutils/find.py
2007-10-21 Joerg Faschingbauer <[email protected]>
* Fixed bug "[ 1654643 ] URGENCY_ERROR require need not be
resolved immediately"
2007-09-27 Joerg Faschingbauer <[email protected]>
* merged from RB-branches/2.1 (last changed rev. 375 there)
* add test libconfix/core/filesys/tests/scan.py
* InstalledNode.short_description() was left abstract; fixed.
2007-09-05 Joerg Faschingbauer <[email protected]>
* BuildInfo_CIncludePath_NativeLocal does not carry any
autoconfisms anymore.
2007-09-01 Joerg Faschingbauer <[email protected]>
* merged from branches/RB-2.1 (last changed rev. 351 there):
* resurrected CALL_MAKE_AND_RESCAN_SYNC() (by popular demand)
2007-09-01 Joerg Faschingbauer <[email protected]>
* Conditional local install.
Before, every header file was copied into the directory
$(top_builddir)/confix_include to make it visible to the build
of fellow modules in the package. This was mainly done to easily
cope with header files that wanted to be visible in a
subdirectory, for example as #include <subdir/file.h>. The
include path of a module that used this file then only had to be
augmented with -I$(top_builddir)/confix_include for any header
file that was locally used.
Anyway, this was done even for header files that didn't want to
be visible in a subdirectory, but only as #include <file.h>. For
these, it is sufficient to point the include path of a using
module into $(top_srcdir)/<path to the directory containing the
file.h>.
The goal of this change is to do the confix_include dance
only if absolutely necessary; i.e. if there is no way to point a
user's include path to a source directory (we could even point
it to a parent directory if applicable).
Tests are in libconfix/plugins/c/tests/cond_localinstall.
* Moved more tests from their original location in the global
tests directory to the place where they belong - to the
neigborhood of the code they test.
2007-07-13 Joerg Faschingbauer <[email protected]>
* fixed "[ 1732685 ] Funny error with
LibraryDependenciesFinderSetup", thereby refactoring a lot of
the Confix2.dir interface stuff.
* Release 2.1.0pre1
2007-06-23 Joerg Faschingbauer <[email protected]>
* Merged from RB-2.0
* Fixed bug when setting environment variables for make, in the
config file.
* Fixed
https://sourceforge.net/tracker/index.php?func=detail&aid=1741989&group_id=68975&atid=523019,
"[ 1741989 ] Explicit interface: EXECUTABLE with implicit
exename".
* fixed "[ 1708975 ] Configure without --prefix"
2007-05-28 Joerg Faschingbauer <[email protected]>
* Explicit interface rudimentarily implemented.
* Merged from TRY-jfasch-bug-1713807:
* fixed "[ 1713807 ] Full graph computed even for unused installed packages"
* Release 2.0.0
2007-03-14 Joerg Faschingbauer <[email protected]>
* libconfix.plugins.c.pkg_config: basic pkg-config support;
currently only supports finding an external library using
pkg-config. in the future, it's supposed to generate pkg-config
files for confix-generated libraries.
2007-03-05 Joerg Faschingbauer <[email protected]>
* (Merged from TRY-jfasch-relocated-headers)
* new RELOCATE_HEADER() function
* "build" test suite for libconfix
2007-03-05 Joerg Faschingbauer <[email protected]>
* (argh) added libconfix.plugins.c.relocated_headers to setup.py
* Release 2.0.0pre24
2007-03-01 Joerg Faschingbauer <[email protected]>
* core.machinery.builder.Builder: new method force_enlarge() which
can be used to easily request another enlarge round. (people
used to add an artificial provide object for that purpose.)
* plugins.c: removed GraphInstaller and DefaultInstaller. the
responsibility of the latter was moved back into
h.HeaderBuilder; the former has no replacement.
* started to move tests from the toplevel 'tests' directory into
subdirectories (named 'tests') of the source to be tested.
* Release 2.0.0pre23
2007-02-11 Joerg Faschingbauer <[email protected]>
* plugins.make.iface: new method CALL_MAKE_AND_RESCAN_SYNC()
* plugins.c.compiled, plugins.c.linked: use
$(readonly_prefixes_incpath) and $(readonly_prefixes_libpath)
instead of the respective @readonly_prefixes_...@
AC_SUBSTitutions
* Release 2.0.0pre22
2007-02-07 Joerg Faschingbauer <[email protected]>
* Bug fix: "[ 1654643 ] URGENCY_ERROR require need not be resolved
immediately"
2007-01-25 Joerg Faschingbauer <[email protected]>
* Bug fix in plugins.make.caller: ambiguous provide objects
generated.
* Release 2.0.0pre21
2007-01-22 Joerg Faschingbauer <[email protected]>
* fix "[ 1639330 ] 'CALL_MAKE_AND_RESCAN' is not defined", plus
associated test.
* Release 2.0.0pre20
2007-01-17 Joerg Faschingbauer <[email protected]>
* fix "[ 1620287 ] Cycle error: message output bug"
2007-01-17 Joerg Faschingbauer <[email protected]>
* Add tests (inmem and build) for explicit executable names
* setup.py: try to put all modules into the distribution packages
(maybe someone will invent recursive_packages one day)
* Release 2.0.0pre19
2007-01-07 Joerg Faschingbauer <[email protected]>
* Eliminate the bogus DirectoryBuilder.configurator
story. Builder.initialize() is now responsible for executing the
user's interface calls. Configuration of the directory is now
done by the package's LocalPackage.initial_builders() return
value.
2007-01-04 Joerg Faschingbauer <[email protected]>
* libconfix.plugins.c.library_dependencies: generate library
dependencies for executables that are not linked by libtool
(<exename>_DEPENDENCIES).
* Internal changes
* Replace the odd BuilderSet with an ordinary standard Python
set.
* Builders IDs do not anymore have to be globally (well, inside
the package) unique, but only within a directory. Renamed
Builder.unique_id() to Builder.locally_unique_id(),
therefore. Require an implementation to implement it, though,
to make people aware.
* libconfix.plugins.c.base: evaluate the C comment interface
calls (you know, "// CONFIX:BLAH()" stuff) in
Builder.configure(), rather than in the ctor.
* libconfix.plugins.c.clusterer: support for C files that get
their "MAIN" property *after* the clusterer has seen them the
first time.
* lots of new tests.
* Release 2.0.0pre18
2006-11-30 Robert Lechner <[email protected]>
* bug fixes
* Release 2.0.0pre17
2006-10-25 Joerg Faschingbauer <[email protected]>
* IDL: install files with modules that are not properly terminated
flat, into $(includedir)
* Release 2.0.0pre16
2006-10-24 Joerg Faschingbauer <[email protected]>
* Moved everything from core to machinery.core
2006-10-24 Joerg Faschingbauer <[email protected]>
* Re-enabled KDE-Hack (y'know, "fast creating dir/Makefile")
* Release 2.0.0pre15
2006-10-23 Joerg Faschingbauer <[email protected]>
* libconfix/plugins/idl/builder.py: argh. renamed IDLBuilder to
Builder, but forgot to ...
* autoconf-archive/ac_jni_include_dir: += interix
* Release 2.0.0pre14
2006-10-23 Joerg Faschingbauer <[email protected]>
* Removed 'parentbuilder' and 'package' from Builder ctor (and all
derived)
* Rudimentary 'debug' facility (a plugin localized in
frontends.confix, for the time being)
* Release 2.0.0pre13
2006-10-20 Joerg Faschingbauer <[email protected]>
* libtool linking now works correctly (pass only directly referenced
libraries as commandline arguments)
* new plugin: make (simple codegenerator wrapper)
* moved CompositeSetup from plugins.c to core.setup
* Release 2.0.0pre12
2006-10-19 Joerg Faschingbauer <[email protected]>
* Confix2.dir: new method RESCAN_CURRENT_DIRECTORY()
* Release 2.0.0pre11
2006-10-19 Joerg Faschingbauer <[email protected]>
* Put Confix2.pkg in EXTRA_DIST
* Release 2.0.0pre10
2006-10-18 Joerg Faschingbauer <[email protected]>
* core.automake.file_installer: $< is not portable make. replace
it with a more obscure construct.
* Performance fixes
* Marshal MD5 sums together with configure.ac and acinclude.m4
related build info.
* plugins.c: do not repeatedly search for the main
function. checking once is enough.
2006-10-18 Joerg Faschingbauer <[email protected]>
* core.automake.autoconf_archive: search for archive works when
performed outside of confix's world.
* serious fix: configfile's CONFIGURE/ENV settings wreak havoc on
configure call at worst (Interix); the bug goes unnoticed most
of the time.
* Better error message for provide conflicts.
* Release 2.0.0pre9
2006-10-17 Joerg Faschingbauer <[email protected]>
* plugins.c.clusterer: libtool library version is parsed from
package name by default
* plugins.c.iface: PROVIDE_H() auto-recognizes glob characters,
thus making faster matches by default
* Release 2.0.0pre8
2006-10-16 Joerg Faschingbauer <[email protected]>
* plugins.c.linked: add full graph to te linker commandline,
regardless of libtool usage (see the comment there).
* 2.0.0pre7
2006-10-16 Joerg Faschingbauer <[email protected]>
* plugins.c.clusterer: explicit LIBNAME()
* 2.0.0pre6
2006-0{6,7,8,9,10}-* Joerg Faschingbauer <[email protected]>
* ongoing rewrite ...
2006-06-21 Joerg Faschingbauer <[email protected]>
* merged from 1.5 (merge-release-1_5-2006-06-21 there):
* Apply KDE hack if user wants it. KDE use to patch their
configure script to replace ~1 Billion parallel sed instances
with one singe perl call.
* bulk install: depending on .confix's USE_BULK_INSTALL, offer the
option --enable-bulk-install, and make use of that feature. that is
* populate the aux-dir with the helper program
bulk-install.py. files will be installed using this program,
instead of automake's (slow) install-sh and friends.
* generate .bulk-install-{local,public} files in every directory
where something is installed
* generate conditional Makefile.am code - bulk-install and regular
automake install - switchable with --enable-bulk-install
* to accomplish all this, install code had to be slightly modified:
make everyone install files through the new FileInstaller class
* AC_CONFIG_AUX_DIR([confix-admin])
* do not scan the whole package with --make and
--configure. rather, read only the top-level Makefile.py to
retrieve the package name and version
* Add dump-repofile.py program, plus a few changes here and there
to make its output prettier.
* merged from 1.4 (merge-release-1_4-2006-06-21 there):
* CONFIGURE_IN(): new parameter propagate_mode (=LOCAL inhibits
propagation)
* libconfix/makefile_py.py: FEATURE_MACRO no longer supported.
* buildable_exe.py: add library dependencies. people need it
badly, but this can only be a wild hack: if we are using
libtool, we cannot be sure what kind of libraries we will be
linking against. see the comment in the source for a more
thorough explanation.
* buildable_clusterer_c: make library and executable names shorter
(albeit unique across the package)
* Access readonly_prefixes_* through their make macros
$(readonly_prefixes_*), rather than through the associated
substitution @readonly_prefixes_*@ (this makes Dops happy).
* autoconf-archive (ac_pkg_mico.m4)
* add explicit MICO_URGENCY value "off"; else --without-mico
mico-setup.sh is found and evaluated. (bloody code
that).
* search mico-setup.sh in ${PATH} as well.
* pkg_buildable.py: put kdevelop hints at the end of the
conditional SUBDIRS section (patch by Robert Gruber).
* libconfix/helper_pickle.py: on interix, use pickle instead of
cPickle because the latter segfaults.
2006-04-05 Joerg Faschingbauer <[email protected]>
* ongoing rewrite: implment and make sure (write tons of tests :-)
that buildinfo is communicated correctly. on the way to writing
real output.
2006-03-26 Joerg Faschingbauer <[email protected]>
* scripts/find_path.py: new program to discover paths to unwanted
modules in the graph
* ongoing rewrite:
* eliminate CompositeBuilder in favor of DirectoryBuilder
* introduce EntryBuilder as base of DirectoryBuilder and
FileBuilder
* make FILE_PROPERT{Y,IES} work for a directory's Makefile.py
2006-02-06 Joerg Faschingbauer <[email protected]>
* Merged from release_1_4-branch (merge-release-1_4-2006-02-06
there).
* buildable_exe.py: add library dependencies. people need it
badly, but this can only be a wild hack: if we are using
libtool, we cannot be sure what kind of libraries we will be
linking against. see the comment in the source for a more
thorough explanation.
2006-02-06 Joerg Faschingbauer <[email protected]>
* Replaced dirty old dependency graph (libconfix.depgraph) with a
shiny new one in libconfix.digraph.digraph, accompanied with a
growing set of graph tools in the same module.
* Ongoing modularization: moving the monolithic pieces (pun
intended) to libconfix.core.
2006-01-30 Joerg Faschingbauer <[email protected]>
* libconfix/helper_pickle.py: on interix, use pickle instead of
cPickle because the latter segfaults.
2006-01-25 Joerg Faschingbauer <[email protected]>
* Ongoing modularization: moved a lot of stuff into
libconfix.plugins
* writedot.py up and running again.
2005-12-20 Joerg Faschingbauer <[email protected]>
* Ongoing modularization
* Moved default Builder creators out of the library, into the main
program, confix.py.
* Moved libconfix.plugin_idl to libconfix.plugins.idl.*
* libconfix.readonly_prefixes: generate several other directory
lists which can be useful.
* libconfix.plugins.mico: beginnings of Mico IDL plugin.
2005-12-09 Joerg Faschingbauer <[email protected]>
* Refactored buildinfo handling alot. buildinfo is now maintained
in an indexed way - no more linear searching, no ugly
gather_content(), reap_content() anymore (pooh).
2005-12-09 Joerg Faschingbauer <[email protected]>
* Release 1.4.0
2005-12-07 Joerg Faschingbauer <[email protected]>
* Make repeated adds of equal require objects have no effect -
they are collapsed into one single object, no matter how often
they are added.
* To make this possible, refactored handling of dependency
information (provide and require objects) quite a bit.
* Release 1.4.pre11
2005-12-06 Joerg Faschingbauer <[email protected]>
* libconfix/modbuild.py (BuildableModule.gather_configure_in): do
not drop configure.in paragraphs of the module itself.
* Release 1.4.pre10
2005-12-05 Joerg Faschingbauer <[email protected]>
* libconfix/buildable_mgr.py: removed debug output (which I forgot
accidentally)
* Release 1.4.pre9
2005-12-04 Joerg Faschingbauer <[email protected]>
* libconfix/buildable_lex.py: argh; forgot about
create_from_file()
* Release 1.4.pre8
2005-12-02 Joerg Faschingbauer <[email protected]>
* Require a minimum automake version of 1.9, by adding "1.9" to
AUTOMAKE_OPTIONS
2005-12-02 Joerg Faschingbauer <[email protected]>
* Several small fixes related to helper_configure_in
* Release 1.4.pre7
2005-12-02 Joerg Faschingbauer <[email protected]>
* libconfix/modbuild.py (BuildableModule.gather_build_info): do
not gather dependency info from self.
* Release 1.4.pre6
2005-12-01 Joerg Faschingbauer <[email protected]>
* libconfix/buildable_library.py: remove _DEPENDENCIES since this
is completely wrong for libraries.
* libconfix/plugin_idl.py: provide file internally only if install
path is not null (or else we have a duplicate provide object).
* buildable_library.py: removed check if pipe.close() went
ok. rationale: if something went wrong, there is a good chance
that parsing of the output fails anyway.
* Release 1.4.pre5
2005-11-28 Joerg Faschingbauer <[email protected]>
* Add "lines" parameter to BuildableCreator specializations, to
relieve creators from actually having to read the file.
* Release 1.4.pre4
2005-11-25 Joerg Faschingbauer <[email protected]>
* Made eliminating internal require objects 100 times faster
through indexing.
* Removed Salomon plugins
* Release 1.4.pre3
2005-11-22 Joerg Faschingbauer <[email protected]>
* Merged from release-1_3-branch (merge-release-1_3-2005-11-22
there); here's an outline of the changes
* plugin_salomon_bmw_assembly: bug fix: explicitly specified
'wanted_components' not working; ALL_AVAILABLE was done in
every case
* plugin_salomon_pdl: searching the prefixes for .rc files to
copy: break after having found one. (was
http://salxis.salomon.at/cgi-bin/bugzilla/show_bug.cgi?id=6084)
* plugin_salomon_pdl: do not add
readonly_prefixes.datapath_subst (which expands to the
cascaded datadirs, but without -I added - argh)
* plugin_salomon_pdl: call $(PDL) rather than straight pdl
* add --readonly-prefixes commandline option
2005-11-22 Joerg Faschingbauer <[email protected]>
* Release 1.4.pre2
* Marshalling revisited (one more time): per-class version
numbers; somehow lost these over time.
2005-11-14 Joerg Faschingbauer <[email protected]>
* Marshalling revisited: the dictionary is still controlled by
{s,g}et_marshalling_data(), but it is not recursive
anymore. rather, attributes are stored flat just like it is with
pickling when you don't do anything special. this saves even
more space in the repo files; also, it is possible to check for
attribute conflicts (see marshalling.merge_attributes()).
2005-11-11 Joerg Faschingbauer <[email protected]>
* Release 1.4.pre1
* removed class MarshallingData; use a plain dictionary instead
(this decreases size of repo files drastically)
* Tightened error output a bit
* speed up repository reading by a factor of two using cPickle
instead of pickle
2005-11-10 Joerg Faschingbauer <[email protected]>
* Repository files are now pickled dictionaries which contain a
version number and a package which was pickled into a string.
2005-11-06 Joerg Faschingbauer <[email protected]>
* Made everything Marshallable (modulo a few I may have forgotten
due to the lack of types @#$%^)
* BuildInformation hierarchy
* ModuleBase, InstalledModule
* Package, InstalledPackage
* Eliminated AC_Check. Instead added paragraph.py: Paragraph,
ParagraphSet, OrderedParagraphSet.
* Eliminated acincludeparts likewise.
2005-11-01 Joerg Faschingbauer <[email protected]>
* Versioned Marshalling added, through the classes Marshallable
and MarshallingData in marshalling.py.
* Require and Provide hierarchies made Marshallable.
2005-10-31 Joerg Faschingbauer <[email protected]>
* (merged from optional-modules-branch2, rendered that dead thereby)
* Conceptual changes
* Replaced the over-intelligent content.Content base class with
buildinfo.BuildInformation which is more to the point.
Instead of pushing the Content objects into their consumers, let
the consumers (the Buildable instances) actively fetch their
BuildInformation objects.
* Redesigned the persistent build information to be less vulnerable
to changes. For example, we only persist library base names (no
'lib', no '.a'), and so on. we defer more responsibility to the
consumer to calculate his information from what he gets.
* The following got largely rewritten to accomodate with these
changes
* plugin_salomon_owilrc.py
* plugin_idl.py
* plugin_salomon_idl.py
* Punctual changes (not necessarily exhaustive)
* error.py: introduce new class SystemError to carry the
traceback. configfile.py and makefile_py.py are happy to use this and to better report errors.
* pkg_buildable.py, modbuild.py, and virtually all buildables: let
BuildableModule (and its Buildable* members) gather the build
information actively, rather than having BuildablePackage do it.
* buildable_library.py, to replace buildable_ltlibrary.py and
buildable_archive.py (which have been removed/disabled).
* one library class for all kinds of libraries (static, shared -
heading for libtool convenience libraries once time is right).
* separate build information for native-local, native-installed,
external libraries.
* check_extlib.py, check_optmod.py, content_c_incpath.py,
content_extlib.py: finally got around to remove that bloody cruft.
* buildable_h.py, modbase.py: performance improvement: singletons
BuildInfo_CIncludePath_NativeLocal and
BuildInfo_CIncludePath_NativeInstalled
* configure_in.py: support for automake conditionals
* pkg_buildable.py: conditional SUBDIR builds
* buildable.py, buildable_c_base.py, buildable_iface.py: bug fix in
the "buildable" interface: distinguish between locally added and
propagated CONFIGURE_IN() and ACINCLUDE_M4() pieces.
* buildable_clusterer_c.py: remove BMW libname hack
2005-08-24 Joerg Faschingbauer <[email protected]>
* pkg_buildable.py: add readonly-prefixes check generally, not
only in the buildable_c... area.
* readonly_prefixes.py: AC_SUBST @readonly_prefixes@
* plugin_salomon_owilrc.py: works, though possibly a bit
slow. what's missing is a clusterer for rc files.
* plugin_salomon_pdl.py: emit BuildableOwilUnstrippedFieldRC
objects instead of BuildablePlainFile objects
* plugin_owilrc.py: disabled (to be removed)
2005-08-23 Joerg Faschingbauer <[email protected]>
* depindex.py: rather than assert'ing, throw a descriptive Error
if duplicate Provide objects are seen.
* depgraph.py: accumulate these errors into one big Error which is
thrown at the end
2005-08-16 Joerg Faschingbauer <[email protected]>
* plugin_salomon_bmw_assembly.py: add 'beleg' to required
components
* makefile_am.py: add install-local hook target, in addition to
the already-supported all-local and clean-local.
2005-08-10 Joerg Faschingbauer <[email protected]>
* plugin_idl.py: add "urgency" parameter
* plugin_salomon_idl.py: make use of it (i.e. pass URGENCY_ERROR)
2005-08-07 Joerg Faschingbauer <[email protected]>
* plugin_salomon_mkcompver.py: several fixes to get he component
version right.
* plugin_cvsinfo.py: utilities to extract information from 'cvs
status' (to be used in plugin_salomon_mkcompver.py).
2005-08-07 Joerg Faschingbauer <[email protected]>
* helper_automake.format_rule(): bug fix: accommodate for
prerequisites parameter that has None value (which ought to work
as the function signature suggests)
2005-07-08 Joerg Faschingbauer <[email protected]>
* plugin_salomon_pdl.py: install .sql files into
$(prefix)/data/sql
* Release 1.3.pre58
2005-07-08 Joerg Faschingbauer <[email protected]>
* libconfix/buildable_clusterer_c.py: apply a hack to shorten
library names for BMW components. (This hack is not supposed to
stay forever, however.)
* Make the "confix_include" post-build step less noisy
2005-07-06 Joerg Faschingbauer <[email protected]>
* libconfix/plugin_salomon_pdl.py:
* BuildablePDSCreator
* add the generated "lock file" (the "witness", as it is called
in the section "26.8 Handling Tools that Produce Many Outputs"
of the automake manual) to EXTRA_DIST
2005-07-06 Joerg Faschingbauer <[email protected]>
* libconfix/makefile_am.py: $(CONFIX_BACKSLASH_MITIGATOR) woes,
again. Do not add it to, for example, "confixrepodir =
$(datadir)/confix/repo" - automake will eat
$(CONFIX_BACKSLASH_MITIGATOR), but not the space in
between. (Argh!)
* Release 1.3.pre57
2005-07-05 Joerg Faschingbauer <[email protected]>
* Silenced performance debug output; introduced a trace level
'performance'
2005-07-05 Joerg Faschingbauer <[email protected]>
* Do not insist in ~/.confix, especially not when only --version
is wanted :-)
* Release 1.3.pre56
2005-07-05 Joerg Faschingbauer <[email protected]>
* Performance fixes
* Dependency resolving
Actually, this was done in quadratic runtime (argh). When
calculating the successors of a node, we matched all Require objects
against all Provide objects of all other modules. This is ok when
the Repo contains a relatively small number of Provide objects. If
it contains many thousands of both Require and Provide objects, the
performance decrease is painful.
* Introduced a common base class, Provide_String, for every Provide
class whose matches are done using the same string comparisons
(exact, prefix, glob). All of these actually have been copied from
the same original, Provide_CInclude. (Removed lots of duplicate
code: pure fun.)
Drawback: repo incompatibility
* With this it was easily possible to write a centralized mapping
(depindex.py) which can find Require/Provide edges in logarithmic
time with a simple dictionary lookup, at least for the 'exact'
Provide_String objects. We still have to search linearly through
the others (glob, prefix), but fortunately these are only a few in
most cases.
* Distributing build information
The common case is that redundant build information goes into a
module when the module is scanned. For example, if the module
contains 10 header files, 10 identical
BuildInfo_CIncludePath_NativeLocal are added to the module. When the
time comes to distibute that build information, the same information
is distributed 10 times, and the receiver (BuildableCBase, most
likely) will take only the first, and ignore the last 9. Again, this
is ok for a small Repo, but a headache for heavily populated ones.
* Introduced a ModuleContent method, will_that_say_the_same(), to
ask objects for redundancies, and call that in ModuleBase (which
is the one that maintains ModuleContent objects).
* Implemented the method in the most heavily used classes:
BuildInfo_CIncludePath_NativeLocal,
BuildInfo_CIncludePath_NativeInstalled, and
BuildInfo_PDLIncludePath_Native (which are also the most popular
candidates for redundancies).
* Disabled BuildablePlainFile's (ModuleContent_PlainFile_Base)
distributing of build information since it is meaningless, bogus,
and too high volume in some cases.
2005-07-04 Joerg Faschingbauer <[email protected]>
* makefile_am.py: using format_make_macro() in every possible
place
* Release 1.3.pre54 (inofficially; i.e. not committed an thus not
visible to anyone)
2005-07-03 Joerg Faschingbauer <[email protected]>
* configfile.py:
- complain if file does not exist, rather than ignoring it
(argh)
- complain if requested profile does not exist, rather than
returning the default configuration (argh)
* Release 1.3.pre53
2005-06-29 Joerg Faschingbauer <[email protected]>
* makefile_am.py, helper_automake.py: starting with AM_CPPFLAGS,
begin to avoid trailing backslashes which are followed by an
empty line. at least the HP-UX make implementation has severe
problems with these.
* Release 1.3.pre52
2005-06-27 Joerg Faschingbauer <[email protected]>
* readonly_prefixes.py, plugin_salomon_pdl.py: cascade datadir
just like includedir
* plugin_salomon_bmw_assembly.py: bugfix: I want a statically
typed language
* Release 1.3.pre51
2005-06-14 Joerg Faschingbauer <[email protected]>
* plugin_salomon_bmw_assembly.py: BMW components need not be fully
implemented (one need not write all of the '<compname>_[sbg]'
directories).
2005-06-13 Joerg Faschingbauer <[email protected]>
* plugin_salomon_pdl.py: add -I$(datadir) to pdl commandline
because .pdr's are installed there.
2005-04-20 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre49
2005-04-15 Joerg Faschingbauer <[email protected]>
* buildable_ltlibrary.py: removed check if pipe.close() went
ok. rationale: if something went wrong, there is a good chance
that parsing of the output fails anyway.
2005-04-11 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre48
* helper_automake.py: format_rule(): accept a command as list of
strings, and apply line wrapping on it.
* plugin_salomon_pdl.py: make use of the above change
2005-03-16 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre47
* plugin_plainfile.py:
- add a generic BuildablePlainFileCreator class
- remove the "datadir: command not found" shell error in the
generated configure script
2005-03-08 Joerg Faschingbauer <[email protected]>
* bug fix: parallel build triggers race condition when creating
the confix_include directory
2005-03-03 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre46
* buildable_c_base.py: bug fix: add readonly_prefixes.check if
installed native header has been seen.
* plugin_salomon_mkcompver.py: bug fix: import a few things which
I didn't
2005-03-02 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre45
* plugin_salomon_mkcompver.py: generate COMPVERS structure
instance in .component_release2.c.in. Maintain acCompVersion and
acCompName for backward compatibility.
2005-03-01 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre44
2005-02-28 Joerg Faschingbauer <[email protected]>
* buildable_lex.py, buildable_yacc.py: bug fix: pass
search_for_main (=False) to base class ctor
2005-02-25 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre43
* buildable_c_base.py, buildable_h.py, buildinfo.py,
buildinfo_common.py, content_c.py, content_c_incpath.py,
makefile_py.py, plugin_salomon_buildcfg.py,
readonly_prefixes.py:
separate native and external modules' include and library path
handling.
- native modules do not contribute any path information at
all. rather, they only contribute information about their
presence, and the receiver (the entity that is being built)
decides what to do. for example, the presence of a local
library in the dependency list triggers
-I$(top_builddir)/confix/include onto the commandline. or, the
presence of an installed library triggers -I$(includedir) and
the readonly-prefixes stuff onto the commandline.
- external modules did not change much except that they got an
extra token
- REVERSE_C_INCLUDE_PATH was deprecated (but still left there
because installed repo files may still contain outdated
information)
* makefile_py.py: EXTERNAL_LIBRARY2(): add incpath=[] parameter
* plugin_salomon_buildcfg.py: add urgency parameter to
Require_BuildCfg ctor.
* plugin_salomon_mkbuild.py:
- perform .in substitution in conjunction with wx-toolsbox modules
- Require_BuildCfg URGENTly
- handle _SOURCES correctly: add .in to EXTRA_DIST, and add .c to
_SOURCES
* plugin_salomon_mkcompver.py
- handle _SOURCES correctly: add .in to EXTRA_DIST, and add .c to
_SOURCES
* plugin_salomon_pdl.py: add self.srcdir_ to include path, or else
it won't work because all-local is only done after the
submodules (and therefore the PDL files aren't visible in
$(top_builddir)/confix_include at submodule build time).
2005-02-23 Joerg Faschingbauer <[email protected]>
* buildable_iface.py: BUG FIX: CONFIGURE_IN(), ACINCLUDE_M4():
'id' parameter can be None. Leave it out completely for the
content name.
2005-02-22 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre42
* plugin_salomon_pdl.py: a complete rewrite of the old
plugin_pdl.py. Can create submodules (which made many of the
changes below necessary, directly or indirectly), and has a
modular architecture to better manage various PDL drivers.
* most buildables (including those of various plugins), plus the
coordinating modbuild.py:
- eliminate the Buildable*.scan() method. Scan in the ctor
instead where one passes a 'lines' parameter (a list of source
code lines)
- eliminate the hackerish is_shallow flag of the various
Buildable ctors, and simply pass an empty 'lines' parameter
instead.
- buildable_c_base.py: no need anymore for
BuildableCBase.set_has_main(). Use a ctor flag instead,
'search_for_main'.
* buildable_clusterer_c.py: allow Buildable objects of any kind to
be seen, not only BuildableSingle.
* makefile_py.py:
- PACKAGE(), MODULE()
- use the execfile() function instead of the exec statement.
* modbase.py:
- take care of the same physical Require object being added
repeatedly.
* pkg_buildable.py, modbuild.py, modbase.py, modinst.py: avoid
exec'ing the toplevel makefile.py twice. this was only to get
the package name, which in turn was only to give the toplevel
module a name. now every module has a package-local name (the
toplevel module's name is simply []), and the globally unique
name is composed dynamically from the package name (which every
module has a backreference to) and the local name.
2005-02-21 Joerg Faschingbauer <[email protected]>
* plugin_salomon_mkbuild.py, plugin_salomon_mkcompver.py: the
generated buildable must have the *.c.in as filename. *.c is
only an intermediate stage and must not show up in the _SOURCES
variable (or else it will lead to packaging errors - make
distcheck will complain)
2005-02-17 Joerg Faschingbauer <[email protected]>
* modbuild.py:
- rename self.ignore_files_ to self.ignore_direntries_
- respect self.ignore_direntries_ before recursing into
subdirectories
2005-02-15 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre41
* check_native.py: break after finding a dependency library in the
-L path.
2005-02-14 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre40: intermediate release
* helper_automake.py: commands can optionally be None
* pkg_buildable.py: relax toplevel build restrictions: permit
toplevel build if the toplevel module does not depend on any
other (sub)module.
* require_callable.py: "urgency" parameter, just as in all the
other classes which are derived from Require
* makefile_py.py: REQUIRE_CALLABLE(), PROVIDE_CALLABLE()
2005-02-11 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre39
* depgraph.py: re-introduce detection of conflicts between provide
objects that belong to different modules (accidentally removed
that in 1.3.pre38)
* writedot.py: ignore modules that don't participate in the
depgraph
2005-02-09 Joerg Faschingbauer <[email protected]>
* configure.py, make.py: write environment only if trace 'env' is
on.
* buildinfo_common.py, plugin_pdl.py: on the way to distribute
build information in a more fine-grained way.
2005-02-07 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre38
* helper.py: add function clone_value() to recursively clone list
and dictionary values
* depgraph.py, modbase.py, modbuild.py, modinst.py,
pkg_buildable.py, repo.py, repo_automake.py, repo_composite.py,
repo_compound.py, repo_local.py, todo.py: Eliminate the need for
repo/package/module priorities completely. The fact that we
maintain package descriptions instead of module descriptions
makes this possible: arrange everything into
CompositePackageRepository instance and do the ex-priority logic
there.
2005-02-04 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre37
* depgraph.py, modbase.py, modbuild.py, modinst.py,
pkg_buildable.py, repo.py, repo_automake.py, repo_compound.py,
todo.py: do not sort by priorities the dependency line of a
module anymore. leave it untouched. rather, eliminate duplicate
packages of lower priority *before* toposorting.
2005-02-03 Joerg Faschingbauer <[email protected]>
* configure_in.py: call AC_CANONICAL_TARGET as part of the
boilerplate stuff
2005-02-02 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre36
* libconfix/plugin_pdl.py: wrap long lines
2005-01-27 Joerg Faschingbauer <[email protected]>
* libconfix/makefile_py.py, buildable_iface.py, ac_lines.py,
acinclude.py: permit passing no id, and calculate id as md5 hash
then. make this visible to the user through ACINCLUDE_M4() and
CONFIGURE_IN() in the respective interface files.
* scripts/writedot.py: accept a list of repo files on the cmdline
instead of a repo directory.
2005-01-25 Joerg Faschingbauer <[email protected]>
* Release 1.3.pre35
* plugin_pdl.py: call $(PDL) (as set by AC_CHECK_PROG), rather
than straight pdl