Let's say you have a bunch of mini-projects (or custom libraries): c:\projects\my_uart c:\projects\my_leds c:\projects\my_eeprom Now you want to reuse some of that code your other project, "UART LED Blinker": c:\projects\my_uart_led_blinker Naturally, you add the files you want to use to the project tree in MPLAB, it compiles and works great. Of course, you have to also provide complete relative paths to the .h files: #include "..\my_uart\my_uart.h" Then you decide to rename the main projects folder: c:\my_projects Unfortunately, now the files you borrowed from my_uart and my_leds are "not found" in MPLAB (it uses absolute paths). And, good luck collaborating on a project with someone who uses a different folder structure for their projects. How do you guys organize code that you intend to share between projects? I know I can roll the libs into .a files, but I like to be able to edit these library source files (refactoring, adding new functions) as I'm working on a project that is using those libs. I don't like the idea of copying the files, because I want the changes I make, to propagate to other projects. To make things even more complicated, how do you avoid breaking old projects when you, for example, add parameters to a function? Is there a way to make a "snapshot" of a project, given that my_uart, my_leds, and my_uart_led_blinker each live in their own repositories? Any insight you can provide will be greatly appreciated. Sincerely, Vitaliy -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist