Структура папок проекта: исходный код make-файлов тоже? - PullRequest
0 голосов
/ 29 декабря 2010

У меня большой проект, который довольно разнороден - участвуют разные языки и компиляторы, вместе производя сборку с помощью GNU make.

Структура папок проекта включает в себя:

project
   src
      haxe          --Haxe source code
      graphics      --Embeddable graphic resources
      locale        --Locale-specific resources
         chinese    --Chinese language resources
         english    --Generic English resources
   build
      china         --Chinese market
         debug      --Debugging/Testing for developer(s)
         release    --Release
      europe        --European market
         debug      -- ...
         release    -- ...

Все сборки производятся путем настройки и запуска make. Я не могу определиться с тем, должны ли эти make-файлы быть помещены в каталог 'src'? Обычно я считаю исходный материал, который я пишу от руки, исходным кодом (поскольку, по моему мнению, он исходил от меня, а не был произведен какой-либо программой из другого источника), и я действительно пишу свои make-файлы вручную. Другая причина, по которой я это считаю, заключается в том, что ТОЛЬКО каталог 'src' является Git-репозиторием - мне больше не нужно отслеживать версию чего-либо еще. Я помещаю все Makefiles в 'src'?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Что в настоящее время находится в вашей build структуре каталогов? Это скомпилированный вывод?

Интуитивно (и я, возможно, пришел из мира, отличного от вас, поэтому «интуитивно» - это относительный термин), когда я вижу папку build, примыкающую к папке src, я ожидаю, что исходный код программы быть в последнем и сценарии / инструменты / и т. д. нужно было его построить чтобы быть в первом. Сценарии (в данном случае make-файлы, хотя потенциально могут включать и другие вещи) сами по себе являются исходным кодом, как вы заявляете, но не являются источником программы. Различие состоит в том, что один - это «что строится», а другой - «как его строить».

Если я вас правильно понимаю, src это то, что связано с вашим контролем исходного кода, а build нет? При таких обстоятельствах я, вероятно, создал бы build (или builder или building или что-то в этом роде) в src для размещения сценариев. Может быть, немного не совсем понятно, что ему нужно перебраться в другую папку, прежде чем выдавать свои выходные данные, но она должна хорошо сочетаться с уже имеющимися там папками ресурсов.

1 голос
/ 29 декабря 2010

Стандартная практика заключается в создании Makefile вне вашего каталога src /, который создает ваш проект, а внутри этого каталога src / другой Makefile создает отдельные модули.Тем не менее, я думаю, что в вашем случае достаточно сохранить ваш Makefile исключительно в src /.Я не уверен, что это применимо, но вы можете посмотреть на пакет autoconf GNU, он используется именно для этого типа вещей.

...