Hi,
I'm using GNU Make 3.80 with Cygwin on Microsoft Windows XP (Home
Edition). The Makefile is attached; you can also get it, and the lecture
slides I build with it, via:
svn co http://pyre.third-bit.com/svn/swc/trunk swc
On all three of my Linux machines (Ubuntu and Fedora Core), and on my
Windows XP Pro machine, the variable GFX_SRC expands correctly --- run:
make settings | grep GFX_SRC | sed -e 's|./lec|\n./lec|g'
and you'll get the output in the attachment correct.txt. Run the same
command on my XP Home Edition laptop, and GFX_SRC is incorrect (see the
contents of attachment incorrect.txt).
For example, there is an image file './lec/img/shell02/pipes.png'. In the
correct listing, it appears once, correctly. In the incorrect listing, it
appears as it should, but it also appears as './lec/img/shell01/pipes.png'
('01' instead of '02'). Since there's no such file, the Makefile halts
with an error.
I'm hoping someone can tell me that (a) I'm defining things incorrectly,
it's all my fault, I should have read the manual, etc., or (b) this is a
known bug in GNU Make 3.80 on Cygwin, there's a workaround, and I should
have read the manual.
Thanks in advance for your help,
Greg WilsonGFX_SRC: ./img/sc_top_banner.jpg
./lec/img/bib/agans_debugging.jpg
./lec/img/bib/andrews_whittaker_break_web_software.jpg
./lec/img/bib/article.jpg
./lec/img/bib/berkun_art_proj_mgmt.jpg
./lec/img/bib/brand_how_buildings_learn.jpg
./lec/img/bib/brooks_mythical_man_month.jpg
./lec/img/bib/castro_html.jpg
./lec/img/bib/castro_xml.jpg
./lec/img/bib/clark_automation.jpg
./lec/img/bib/demarco_lister_peopleware.jpg
./lec/img/bib/doar_practical_dev_env.jpg
./lec/img/bib/feathers_legacy_code.jpg
./lec/img/bib/fehily_python.jpg
./lec/img/bib/fehily_sql.jpg
./lec/img/bib/fogel_producing_open_source.jpg
./lec/img/bib/fowler_refactoring.jpg
./lec/img/bib/friedl_mastering_regexp.jpg
./lec/img/bib/gang_of_four_design_patterns.jpg
./lec/img/bib/glass_facts_fallacies.jpg
./lec/img/bib/goerzen_python_network_programming.jpg
./lec/img/bib/good_regexp_recipes.jpg
./lec/img/bib/gunderloy_coder_developer.jpg
./lec/img/bib/harold_effective_xml.jpg
./lec/img/bib/hock_forty_studies_changed_psychology.jpg
./lec/img/bib/humphrey_psp.jpg
./lec/img/bib/hunt_thomas_pragmatic_programmer.jpg
./lec/img/bib/johnson_gui_bloopers.jpg
./lec/img/bib/kernighan_pike_unix_environment.jpg
./lec/img/bib/kernighan_ritchie_c.jpg
./lec/img/bib/knuth_art_programming.jpg
./lec/img/bib/langtangen_python_computational_science.jpg
./lec/img/bib/lutz_ascher_learning_python.jpg
./lec/img/bib/margolis_fisher_unlocking_clubhouse.jpg
./lec/img/bib/martelli_python_cookbook.jpg
./lec/img/bib/mason_subversion.jpg
./lec/img/bib/mcconnell_code_complete.jpg
./lec/img/bib/mcconnell_rapid_development.jpg
./lec/img/bib/mcconnell_spsg.jpg
./lec/img/bib/pilgrim_dive_into_python.jpg
./lec/img/bib/ray_ray_unix.jpg
./lec/img/bib/red_bean_subversion.jpg
./lec/img/bib/rosen_open_source_licensing.jpg
./lec/img/bib/rosenberg_stephens_uml.jpg
./lec/img/bib/schneier_beyond_fear.jpg
./lec/img/bib/schneier_secrets_lies.jpg
./lec/img/bib/sedgewick_algorithms_c.jpg
./lec/img/bib/skoudis_malware.jpg
./lec/img/bib/spinellis_code_quality.jpg
./lec/img/bib/spinellis_code_reading.jpg
./lec/img/bib/spolsky_joel_on_software.jpg
./lec/img/bib/thompson_chase_software_vulnerability_guide.jpg
./lec/img/bib/ullman_liyanage_c.jpg
./lec/img/bib/whittaker_break_software.jpg
./lec/img/bib/whittaker_thompson_break_software_security.jpg
./lec/img/bib/williams_kessler_pair_programming.jpg
./lec/img/bib/wilson_data_crunching.jpg
./lec/img/bib/zeller_why_programs_fail.jpg ./img/favicon.png
./lec/img/shell01/pipes.png
./lec/img/shell01/redirection.png
./lec/img/shell01/shell_no_export.png
./lec/img/shell01/shell_with_export.png
./lec/img/shell02/pipes.png
./lec/img/shell02/redirection.png
./lec/img/shell02/shell_no_export.png
./lec/img/shell02/shell_with_export.png
./lec/img/version/conflict_merge.png
./lec/img/version/edit_update_cycle.png
./lec/img/version/multi_author_collab.png
./lec/img/version/rapidsvn.png
./lec/img/version/rollback.png
./lec/img/version/time_machine.png
./lec/img/version/tortoisesvn.png
./lec/img/build/rule_structure.png
./lec/img/build/visualize_depend.png
./lec/img/py01/human_vs_machine_time.png
./lec/img/py01/short_circuit_eval.png
./lec/img/py01/sturdy_vs_nimble.png
./lec/img/py01/vars_untyped.png
./lec/img/py01/vars_values.png
./lec/img/py02/binary_search.png
./lec/img/py02/dict_as_table.png
./lec/img/py02/hashing.png
./lec/img/py02/invert_dict.png
./lec/img/py02/list_vs_set.png
./lec/img/py02/logarithmic.png
./lec/img/py02/misplaced_values.png
./lec/img/py03/binary_search.png
./lec/img/py03/dict_as_table.png
./lec/img/py03/hashing.png
./lec/img/py03/invert_dict.png
./lec/img/py03/list_vs_set.png
./lec/img/py03/logarithmic.png
./lec/img/py03/misplaced_values.png
./lec/img/style/annotated_syntax_tree.png
./lec/img/style/castling_chunked.png
./lec/img/style/chess_actual.png
./lec/img/style/chess_actual_graph.png
./lec/img/style/chess_random.png
./lec/img/style/chess_random_graph.png
./lec/img/qa/exception_stack.png
./lec/img/qa/try_except_else.png
./lec/img/py04/binary_search.png
./lec/img/py04/dict_as_table.png
./lec/img/py04/hashing.png
./lec/img/py04/invert_dict.png
./lec/img/py04/list_vs_set.png
./lec/img/py04/logarithmic.png
./lec/img/py04/misplaced_values.png
./lec/img/debugging/code_assistant.png
./lec/img/debugging/debugger_in_action.png
./lec/img/debugging/inspecting_values.png
./lec/img/debugging/programs_as_data.png
./lec/img/debugging/setting_breakpoint.png
./lec/img/debugging/source_browser.png
./lec/img/oop01/factory_type_family.png
./lec/img/oop02/factory_type_family.png
./lec/img/unit/rectangle_overlap.png
./lec/img/re/double_compilation.png
./lec/img/re/match_anchor.png
./lec/img/re/option_match.png
./lec/img/re/plus_match.png
./lec/img/re/re_fsm.png
./lec/img/re/star_match.png
./lec/img/re/word_nonword_break.png
./lec/img/binary/bit_flags.png
./lec/img/binary/c_vs_python_storage.png
./lec/img/binary/float_rep.png
./lec/img/binary/metadata.png
./lec/img/binary/pack_data.png
./lec/img/binary/pack_vec.png
./lec/img/binary/setting_clearing_bits.png
./lec/img/binary/twos_complement.png
./lec/img/binary/uneven_spacing.png
./lec/img/xml/dom_tree.png
./lec/img/xml/image.png
./lec/img/xml/links.png
./lec/img/xml/list_table_firefox.png
./lec/img/xml/modify_tree.png
./lec/img/xml/simple_page_firefox.png
./lec/img/db/combined_table.png
./lec/img/db/database_tables.png
./lec/img/db/dbms_interaction.png
./lec/img/db/inner_join.png
./lec/img/db/race_condition.png
./lec/img/db/using_dbms.png
./lec/img/spreadsheets/gnumeric_empty.png
./lec/img/spreadsheets/scores_absolute_references.png
./lec/img/spreadsheets/scores_after_formatting_titles.png
./lec/img/spreadsheets/scores_conditional.png
./lec/img/spreadsheets/scores_copying_formulas.png
./lec/img/spreadsheets/scores_dependencies_highlighted.png
./lec/img/spreadsheets/scores_lookup_error.png
./lec/img/spreadsheets/scores_lookup_results.png
./lec/img/spreadsheets/scores_min_ave_max.png
./lec/img/spreadsheets/scores_when_first_entered.png
./lec/img/spreadsheets/scores_with_formula.png
./lec/img/spreadsheets/solarsystem_log_log.png
./lec/img/spreadsheets/solarsystem_log_log_error.png
./lec/img/spreadsheets/solarsystem_scroll.png
./lec/img/spreadsheets/solarsystem_with_basic_chart.png
./lec/img/integrate/loading_module.png
./lec/img/integrate/pyobject.png
./lec/img/client/http_cycle.png
./lec/img/client/http_request.png
./lec/img/client/http_response.png
./lec/img/client/sockets.png
./lec/img/client/web_services.png
./lec/img/server/cgi_round_trip.png
./lec/img/server/cookies.png
./lec/img/server/hello_cgi.png
./lec/img/server/show_env.png
./lec/img/server/simple_form.png
./lec/img/server/three_tier_architecture.png
./lec/img/security/digital_signatures.png
./lec/img/security/public_keys.png
./lec/img/dev01/boehm_curve.png
./lec/img/dev01/burn_rate.png
./lec/img/dev01/project_lifecycle.png
./lec/img/dev01/ranking_features.png
./lec/img/dev01/spiral_model.png
./lec/img/dev01/waterfall_model.png
./lec/img/dev02/complex_workflow.png
./lec/img/dev02/event_log.png
./lec/img/dev02/how_blogs_work.png
./lec/img/dev02/issue_tracker_new_ticket.png
./lec/img/dev02/mailing_list.png
./lec/img/dev02/repo_browser_dirs_files.png
./lec/img/dev02/repo_browser_revision_history.png
./lec/img/dev02/repo_browser_view_file_diff.png
./lec/img/dev02/roadmap.png
./lec/img/dev02/view_tickets.png
./lec/img/dev02/whitelist_email_address.png
./lec/img/dev02/wiki_edit.png
./lec/img/summary/branch_and_merge.png
./lec/img/summary/orm.png
./lec/img/summary/pickle.png
GFX_SRC: ./img/sc_top_banner.jpg
./lec/img/bib/agans_debugging.jpg
./lec/img/bib/andrews_whittaker_break_web_software.jpg
./lec/img/bib/article.jpg
./lec/img/bib/berkun_art_proj_mgmt.jpg
./lec/img/bib/brand_how_buildings_learn.jpg
./lec/img/bib/brooks_mythical_man_month.jpg
./lec/img/bib/castro_html.jpg
./lec/img/bib/castro_xml.jpg
./lec/img/bib/clark_automation.jpg
./lec/img/bib/demarco_lister_peopleware.jpg
./lec/img/bib/doar_practical_dev_env.jpg
./lec/img/bib/feathers_legacy_code.jpg
./lec/img/bib/fehily_python.jpg
./lec/img/bib/fehily_sql.jpg
./lec/img/bib/fogel_producing_open_source.jpg
./lec/img/bib/fowler_refactoring.jpg
./lec/img/bib/friedl_mastering_regexp.jpg
./lec/img/bib/gang_of_four_design_patterns.jpg
./lec/img/bib/glass_facts_fallacies.jpg
./lec/img/bib/goerzen_python_network_programming.jpg
./lec/img/bib/good_regexp_recipes.jpg
./lec/img/bib/gunderloy_coder_developer.jpg
./lec/img/bib/harold_effective_xml.jpg
./lec/img/bib/hock_forty_studies_changed_psychology.jpg
./lec/img/bib/humphrey_psp.jpg
./lec/img/bib/hunt_thomas_pragmatic_programmer.jpg
./lec/img/bib/johnson_gui_bloopers.jpg
./lec/img/bib/kernighan_pike_unix_environment.jpg
./lec/img/bib/kernighan_ritchie_c.jpg
./lec/img/bib/knuth_art_programming.jpg
./lec/img/bib/langtangen_python_computational_science.jpg
./lec/img/bib/lutz_ascher_learning_python.jpg
./lec/img/bib/margolis_fisher_unlocking_clubhouse.jpg
./lec/img/bib/martelli_python_cookbook.jpg
./lec/img/bib/mason_subversion.jpg
./lec/img/bib/mcconnell_code_complete.jpg
./lec/img/bib/mcconnell_rapid_development.jpg
./lec/img/bib/mcconnell_spsg.jpg
./lec/img/bib/pilgrim_dive_into_python.jpg
./lec/img/bib/ray_ray_unix.jpg
./lec/img/bib/red_bean_subversion.jpg
./lec/img/bib/rosen_open_source_licensing.jpg
./lec/img/bib/rosenberg_stephens_uml.jpg
./lec/img/bib/schneier_beyond_fear.jpg
./lec/img/bib/schneier_secrets_lies.jpg
./lec/img/bib/sedgewick_algorithms_c.jpg
./lec/img/bib/skoudis_malware.jpg
./lec/img/bib/spinellis_code_quality.jpg
./lec/img/bib/spinellis_code_reading.jpg
./lec/img/bib/spolsky_joel_on_software.jpg
./lec/img/bib/thompson_chase_software_vulnerability_guide.jpg
./lec/img/bib/ullman_liyanage_c.jpg
./lec/img/bib/whittaker_break_software.jpg
./lec/img/bib/whittaker_thompson_break_software_security.jpg
./lec/img/bib/williams_kessler_pair_programming.jpg
./lec/img/bib/wilson_data_crunching.jpg
./lec/img/bib/zeller_why_programs_fail.jpg ./img/favicon.png
./lec/img/shell01/directory_tree.png
./lec/img/shell01/operating_system.png
./lec/img/shell01/parent_directory.png
./lec/img/shell01/running_program.png
./lec/img/shell01/shell_screenshot.png
./lec/img/shell02/pipes.png
./lec/img/shell02/redirection.png
./lec/img/shell02/shell_no_export.png
./lec/img/shell02/shell_with_export.png
./lec/img/version/conflict_merge.png
./lec/img/version/edit_update_cycle.png
./lec/img/version/multi_author_collab.png
./lec/img/version/rapidsvn.png
./lec/img/version/rollback.png
./lec/img/version/time_machine.png
./lec/img/version/tortoisesvn.png
./lec/img/build/rule_structure.png
./lec/img/build/visualize_depend.png
./lec/img/py01/human_vs_machine_time.png
./lec/img/py01/short_circuit_eval.png
./lec/img/py01/sturdy_vs_nimble.png
./lec/img/py01/vars_untyped.png
./lec/img/py01/vars_values.png
./lec/img/py02/aliasing.png
./lec/img/py02/indices.png
./lec/img/py02/line_segment.png
./lec/img/py02/negative_indices.png
./lec/img/py02/slice_copy.png
./lec/img/py03/call_stack.png
./lec/img/py03/function_objects.png
./lec/img/py03/parameter_passing.png
./lec/img/py03/passing_slices.png
./lec/img/style/annotated_syntax_tree.png
./lec/img/style/castling_chunked.png
./lec/img/style/chess_actual.png
./lec/img/style/chess_actual_graph.png
./lec/img/style/chess_random.png
./lec/img/style/chess_random_graph.png
./lec/img/qa/exception_stack.png
./lec/img/qa/try_except_else.png
./lec/img/py04/binary_search.png
./lec/img/py04/dict_as_table.png
./lec/img/py04/hashing.png
./lec/img/py04/invert_dict.png
./lec/img/py04/list_vs_set.png
./lec/img/py04/logarithmic.png
./lec/img/py04/misplaced_values.png
./lec/img/debugging/code_assistant.png
./lec/img/debugging/debugger_in_action.png
./lec/img/debugging/inspecting_values.png
./lec/img/debugging/programs_as_data.png
./lec/img/debugging/setting_breakpoint.png
./lec/img/debugging/source_browser.png
./lec/img/oop01/classes_and_objects.png
./lec/img/oop01/crc.png
./lec/img/oop01/inheritance.png
./lec/img/oop01/simple_point.png
./lec/img/oop02/factory_type_family.png
./lec/img/unit/rectangle_overlap.png
./lec/img/re/double_compilation.png
./lec/img/re/match_anchor.png
./lec/img/re/option_match.png
./lec/img/re/plus_match.png
./lec/img/re/re_fsm.png
./lec/img/re/star_match.png
./lec/img/re/word_nonword_break.png
./lec/img/binary/bit_flags.png
./lec/img/binary/c_vs_python_storage.png
./lec/img/binary/float_rep.png
./lec/img/binary/metadata.png
./lec/img/binary/pack_data.png
./lec/img/binary/pack_vec.png
./lec/img/binary/setting_clearing_bits.png
./lec/img/binary/twos_complement.png
./lec/img/binary/uneven_spacing.png
./lec/img/xml/dom_tree.png
./lec/img/xml/image.png
./lec/img/xml/links.png
./lec/img/xml/list_table_firefox.png
./lec/img/xml/modify_tree.png
./lec/img/xml/simple_page_firefox.png
./lec/img/db/combined_table.png
./lec/img/db/database_tables.png
./lec/img/db/dbms_interaction.png
./lec/img/db/inner_join.png
./lec/img/db/race_condition.png
./lec/img/db/using_dbms.png
./lec/img/spreadsheets/gnumeric_empty.png
./lec/img/spreadsheets/scores_absolute_references.png
./lec/img/spreadsheets/scores_after_formatting_titles.png
./lec/img/spreadsheets/scores_conditional.png
./lec/img/spreadsheets/scores_copying_formulas.png
./lec/img/spreadsheets/scores_dependencies_highlighted.png
./lec/img/spreadsheets/scores_lookup_error.png
./lec/img/spreadsheets/scores_lookup_results.png
./lec/img/spreadsheets/scores_min_ave_max.png
./lec/img/spreadsheets/scores_when_first_entered.png
./lec/img/spreadsheets/scores_with_formula.png
./lec/img/spreadsheets/solarsystem_log_log.png
./lec/img/spreadsheets/solarsystem_log_log_error.png
./lec/img/spreadsheets/solarsystem_scroll.png
./lec/img/spreadsheets/solarsystem_with_basic_chart.png
./lec/img/integrate/loading_module.png
./lec/img/integrate/pyobject.png
./lec/img/client/http_cycle.png
./lec/img/client/http_request.png
./lec/img/client/http_response.png
./lec/img/client/sockets.png
./lec/img/client/web_services.png
./lec/img/server/cgi_round_trip.png
./lec/img/server/cookies.png
./lec/img/server/hello_cgi.png
./lec/img/server/show_env.png
./lec/img/server/simple_form.png
./lec/img/server/three_tier_architecture.png
./lec/img/security/digital_signatures.png
./lec/img/security/public_keys.png
./lec/img/dev01/boehm_curve.png
./lec/img/dev01/burn_rate.png
./lec/img/dev01/project_lifecycle.png
./lec/img/dev01/ranking_features.png
./lec/img/dev01/spiral_model.png
./lec/img/dev01/waterfall_model.png
./lec/img/dev02/complex_workflow.png
./lec/img/dev02/event_log.png
./lec/img/dev02/how_blogs_work.png
./lec/img/dev02/issue_tracker_new_ticket.png
./lec/img/dev02/mailing_list.png
./lec/img/dev02/repo_browser_dirs_files.png
./lec/img/dev02/repo_browser_revision_history.png
./lec/img/dev02/repo_browser_view_file_diff.png
./lec/img/dev02/roadmap.png
./lec/img/dev02/view_tickets.png
./lec/img/dev02/whitelist_email_address.png
./lec/img/dev02/wiki_edit.png
./lec/img/summary/branch_and_merge.png
./lec/img/summary/orm.png
./lec/img/summary/pickle.png
_______________________________________________
Make-w32 mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/make-w32