Sembra che la questione non riguardi la distribuzione. La distribuzione consiste nell'ottenere l'applicazione ad altri e include cose come i siti su cui lo si ospita, come lo scaricano e ottengono gli aggiornamenti. Vedi Come vendere / distribuire il mio software? per ulteriori informazioni. Allo stesso modo, se vuoi commercializzare la tua app (farla conoscere a qualcuno), guarda link per alcuni punti di partenza. Sembra che tu stia chiedendo di più sul modulo che l'applicazione dovrebbe assumere quando dai ai clienti e agli altri sviluppatori.
A partire dai clienti, le cose da considerare includono la tecnica dei clienti e il sistema operativo su cui sono in esecuzione. Se i clienti sono persone tecniche in esecuzione su * nix, un readme e un eseguibile sono probabilmente adeguati. Se stai scrivendo un'app per iPhone, chiaramente no. La domanda ti porta a scegliere un ambiente * nix o Windows, quindi dovrei almeno prendere in considerazione un programma di installazione.
Come per separare parti in librerie dinamiche, questo aiuta se si vuole fare riferimento a una libreria esistente, rilasciare la libreria su una pianificazione diversa o riutilizzarla in altre applicazioni. È anche utile per i test unitari automatizzati. Sfortunatamente, i clienti non si preoccupano davvero di nessuno di questi, ad eccezione di potenziali conflitti di versione noti come "inferno DLL" su Windows.
Per quanto riguarda gli sviluppatori, segui le convenzioni del nostro sistema operativo e lingua di destinazione. Se stai mirando a * nix, un makefile è ottimo. Se hai come target Windows, è utile un progetto Visual Studio. Se stai facendo uno sviluppo multipiattaforma, un approccio con il minimo comune denominatore potrebbe essere il più gestibile.
Tuttavia, la cosa più importante che puoi fare è documentare il tuo codice. La maggior parte degli sviluppatori può farsi strada anche attraverso un processo di compilazione complicato, purché sappiano come. Un README o equivalente è un must con istruzioni dettagliate per la sua costruzione, problemi noti e i tuoi dettagli di contatto (come un indirizzo e-mail o un sito Web).
Per come dovresti dividere il codice in librerie esterne o no, anche gli sviluppatori non si preoccupano molto, fintanto che le librerie funzionano, sono ben tenute e non stai violando nessun accordo di licenza. Il tempo e lo sforzo degli sviluppatori risparmiati ne valgono la pena.