about summary refs log blame commit diff stats
path: root/Makefile.am
blob: 2a906a8e66224ee6d2e92670f55f2f8fdd8875b7 (plain) (tree)
1
2
3
4
5
6
7
8
9
                

                                               
                                     
                                       
                                                
                                                 
                                                                                             
                                                     
                                                 
                                                       
                                                                    
                                                     

                                                                                
                                                    
                                             
                                                 
                                                 
                                         
                                             
                                     
                                               
                                                             
                                                             

                                                                   
                                                                
                                         
                                            
                            
                                                   
                                                  
                                         
                          
                         
                          
                          
                         


                                                         
                            
                            

                                 

                                 

                                   

                                     
                                                           
                                                     
                                               
                                               
                                                       
                                                     
                                                     
                                                   
                                                           
                                               
                                               
                                                   
                                                 


                                                         
                                                                   
                                                   
                                                       
                                                 
                                   
 
                    
                                                            
                                                
                                                 
                                                                                             
                                                 
                                                     
                                                       
                                         
                     
                       
                       
                      
                           
                            
                           


                                                         
                            

                                                           
                                                     
                                               

                                     
                               
                                                   
                                               
                                                     

                                                           
                                               
                                                   
                                                       



                                                                   
                                                   
                                                       
                                                 
                                                   
                                               
                                                             
                                                             
                                     
                                            
                                        
                                          
                                             
                                                                   
                                        
                                                
                                                  
                                                
                                              
                                                  
                                                    
                                                      
                                                             










                                                                                   
                                                                                 
                                                                           
                                                                               



                                                                                 
                                                                       
                                                                       
                                                                         
                                                                             
                                                                                     
                                                                           
                                                                                   
                                   
 
                          






                                                                                             
                                                                                   
                                                                                     
                                                                                 
                                                                                     
                                                                           
                                                                                         
                                               


                        



                                                                   



                                                         
                              
 
               

                                     
 
                        

                                        
 
                
                                                                       
 
                 
                                                                                   

                                                                               
 


                                          




                                     




                                
                        
                                      
 
                                       
 
                                     
 
                             
 
                                                          
 

                              
                                           

     
            
                                           
                               
     
 

                                
                                             

     

                                                                        
                                                                         



                                                                            

                                       
                        
                                                  



                                         


                              

                                       
 

                                 
                                                                   





                                               

                                          

                                                       
 
                                                
                                                     
                                  
                                                  






                                                                          
                                                                                                        
                                                                          

      
 
                           
 
                                                                                                                                               












                                         

                      

                                  
                                       


















                                                                                                              


                                     


                                        




                               
core_sources = \
	src/xmpp/contact.c src/xmpp/contact.h \
	src/log.c src/common.c \
	src/chatlog.c src/chatlog.h \
	src/database.h src/database.c \
	src/log.h src/profanity.c src/common.h \
	src/profanity.h src/xmpp/chat_session.c \
	src/xmpp/chat_session.h src/xmpp/muc.c src/xmpp/muc.h src/xmpp/jid.h src/xmpp/jid.c \
	src/xmpp/chat_state.h src/xmpp/chat_state.c \
	src/xmpp/resource.c src/xmpp/resource.h \
	src/xmpp/roster_list.c src/xmpp/roster_list.h \
	src/xmpp/xmpp.h src/xmpp/capabilities.c src/xmpp/session.c \
	src/xmpp/connection.h src/xmpp/connection.c \
	src/xmpp/iq.c src/xmpp/message.c src/xmpp/presence.c src/xmpp/stanza.c \
	src/xmpp/stanza.h src/xmpp/message.h src/xmpp/iq.h src/xmpp/presence.h \
	src/xmpp/capabilities.h src/xmpp/session.h \
	src/xmpp/roster.c src/xmpp/roster.h \
	src/xmpp/bookmark.c src/xmpp/bookmark.h \
	src/xmpp/blocking.c src/xmpp/blocking.h \
	src/xmpp/form.c src/xmpp/form.h \
	src/xmpp/avatar.c src/xmpp/avatar.h \
	src/xmpp/ox.c src/xmpp/ox.h \
	src/event/common.c src/event/common.h \
	src/event/server_events.c src/event/server_events.h \
	src/event/client_events.c src/event/client_events.h \
	src/ui/ui.h src/ui/window.c src/ui/window.h src/ui/core.c \
	src/ui/titlebar.c src/ui/statusbar.c src/ui/inputwin.c \
	src/ui/titlebar.h src/ui/statusbar.h src/ui/inputwin.h \
	src/ui/screen.h src/ui/screen.c \
	src/ui/console.c src/ui/notifier.c \
	src/ui/win_types.h \
	src/ui/window_list.c src/ui/window_list.h \
	src/ui/rosterwin.c src/ui/occupantswin.c \
	src/ui/buffer.c src/ui/buffer.h \
	src/ui/chatwin.c \
	src/ui/mucwin.c \
	src/ui/privwin.c \
	src/ui/confwin.c \
	src/ui/xmlwin.c \
	src/command/cmd_defs.h src/command/cmd_defs.c \
	src/command/cmd_funcs.h src/command/cmd_funcs.c \
	src/command/cmd_ac.h src/command/cmd_ac.c \
	src/tools/parser.c \
	src/tools/parser.h \
	src/tools/http_common.c \
	src/tools/http_common.h \
	src/tools/http_upload.c \
	src/tools/http_upload.h \
	src/tools/http_download.c \
	src/tools/http_download.h \
	src/tools/bookmark_ignore.c \
	src/tools/bookmark_ignore.h \
	src/tools/autocomplete.c src/tools/autocomplete.h \
	src/tools/clipboard.c src/tools/clipboard.h \
	src/tools/editor.c src/tools/editor.h \
	src/config/files.c src/config/files.h \
	src/config/conflists.c src/config/conflists.h \
	src/config/accounts.c src/config/accounts.h \
	src/config/tlscerts.c src/config/tlscerts.h \
	src/config/account.c src/config/account.h \
	src/config/preferences.c src/config/preferences.h \
	src/config/theme.c src/config/theme.h \
	src/config/color.c src/config/color.h \
	src/config/scripts.c src/config/scripts.h \
	src/config/cafile.c src/config/cafile.h \
	src/plugins/plugins.h src/plugins/plugins.c \
	src/plugins/api.h src/plugins/api.c \
	src/plugins/callbacks.h src/plugins/callbacks.c \
	src/plugins/autocompleters.c src/plugins/autocompleters.h \
	src/plugins/themes.c src/plugins/themes.h \
	src/plugins/settings.c src/plugins/settings.h \
	src/plugins/disco.c src/plugins/disco.h \
	src/ui/tray.h src/ui/tray.c

unittest_sources = \
	src/xmpp/contact.c src/xmpp/contact.h src/common.c \
	src/log.h src/profanity.c src/common.h \
	src/profanity.h src/xmpp/chat_session.c \
	src/xmpp/chat_session.h src/xmpp/muc.c src/xmpp/muc.h src/xmpp/jid.h src/xmpp/jid.c \
	src/xmpp/resource.c src/xmpp/resource.h \
	src/xmpp/chat_state.h src/xmpp/chat_state.c \
	src/xmpp/roster_list.c src/xmpp/roster_list.h \
	src/xmpp/xmpp.h src/xmpp/form.c \
	src/ui/ui.h \
	src/otr/otr.h \
	src/pgp/gpg.h \
	src/pgp/ox.h \
	src/omemo/omemo.h \
	src/omemo/crypto.h \
	src/omemo/store.h \
	src/command/cmd_defs.h src/command/cmd_defs.c \
	src/command/cmd_funcs.h src/command/cmd_funcs.c \
	src/command/cmd_ac.h src/command/cmd_ac.c \
	src/tools/parser.c \
	src/tools/parser.h \
	src/tools/autocomplete.c src/tools/autocomplete.h \
	src/tools/clipboard.c src/tools/clipboard.h \
	src/tools/editor.c src/tools/editor.h \
	src/tools/bookmark_ignore.c \
	src/tools/bookmark_ignore.h \
	src/config/accounts.h \
	src/config/account.c src/config/account.h \
	src/config/files.c src/config/files.h \
	src/config/tlscerts.c src/config/tlscerts.h \
	src/config/preferences.c src/config/preferences.h \
	src/config/theme.c src/config/theme.h \
	src/config/color.c src/config/color.h \
	src/config/scripts.c src/config/scripts.h \
	src/config/conflists.c src/config/conflists.h \
	src/plugins/plugins.h src/plugins/plugins.c \
	src/plugins/api.h src/plugins/api.c \
	src/plugins/callbacks.h src/plugins/callbacks.c \
	src/plugins/autocompleters.c src/plugins/autocompleters.h \
	src/plugins/themes.c src/plugins/themes.h \
	src/plugins/settings.c src/plugins/settings.h \
	src/plugins/disco.c src/plugins/disco.h \
	src/ui/window_list.c src/ui/window_list.h \
	src/event/common.c src/event/common.h \
	src/event/server_events.c src/event/server_events.h \
	src/event/client_events.c src/event/client_events.h \
	src/ui/tray.h src/ui/tray.c \
	tests/unittests/xmpp/stub_avatar.c \
	tests/unittests/xmpp/stub_ox.c \
	tests/unittests/xmpp/stub_xmpp.c \
	tests/unittests/xmpp/stub_message.c \
	tests/unittests/ui/stub_ui.c tests/unittests/ui/stub_ui.h \
	tests/unittests/log/stub_log.c \
	tests/unittests/chatlog/stub_chatlog.c \
	tests/unittests/database/stub_database.c \
	tests/unittests/config/stub_accounts.c \
	tests/unittests/config/stub_cafile.c \
	tests/unittests/tools/stub_http_upload.c \
	tests/unittests/tools/stub_http_download.c \
	tests/unittests/tools/stub_aesgcm_download.c \
	tests/unittests/helpers.c tests/unittests/helpers.h \
	tests/unittests/test_form.c tests/unittests/test_form.h \
	tests/unittests/test_common.c tests/unittests/test_common.h \
	tests/unittests/test_autocomplete.c tests/unittests/test_autocomplete.h \
	tests/unittests/test_jid.c tests/unittests/test_jid.h \
	tests/unittests/test_parser.c tests/unittests/test_parser.h \
	tests/unittests/test_roster_list.c tests/unittests/test_roster_list.h \
	tests/unittests/test_chat_session.c tests/unittests/test_chat_session.h \
	tests/unittests/test_contact.c tests/unittests/test_contact.h \
	tests/unittests/test_preferences.c tests/unittests/test_preferences.h \
	tests/unittests/test_server_events.c tests/unittests/test_server_events.h \
	tests/unittests/test_muc.c tests/unittests/test_muc.h \
	tests/unittests/test_cmd_presence.c tests/unittests/test_cmd_presence.h \
	tests/unittests/test_cmd_alias.c tests/unittests/test_cmd_alias.h \
	tests/unittests/test_cmd_connect.c tests/unittests/test_cmd_connect.h \
	tests/unittests/test_cmd_rooms.c tests/unittests/test_cmd_rooms.h \
	tests/unittests/test_cmd_account.c tests/unittests/test_cmd_account.h \
	tests/unittests/test_cmd_sub.c tests/unittests/test_cmd_sub.h \
	tests/unittests/test_cmd_bookmark.c tests/unittests/test_cmd_bookmark.h \
	tests/unittests/test_cmd_otr.c tests/unittests/test_cmd_otr.h \
	tests/unittests/test_cmd_pgp.c tests/unittests/test_cmd_pgp.h \
	tests/unittests/test_cmd_join.c tests/unittests/test_cmd_join.h \
	tests/unittests/test_cmd_roster.c tests/unittests/test_cmd_roster.h \
	tests/unittests/test_cmd_disconnect.c tests/unittests/test_cmd_disconnect.h \
	tests/unittests/test_callbacks.c tests/unittests/test_callbacks.h \
	tests/unittests/test_plugins_disco.c tests/unittests/test_plugins_disco.h \
	tests/unittests/unittests.c

functionaltest_sources = \
	tests/functionaltests/proftest.c tests/functionaltests/proftest.h \
	tests/functionaltests/test_connect.c tests/functionaltests/test_connect.h \
	tests/functionaltests/test_ping.c tests/functionaltests/test_ping.h \
	tests/functionaltests/test_rooms.c tests/functionaltests/test_rooms.h \
	tests/functionaltests/test_presence.c tests/functionaltests/test_presence.h \
	tests/functionaltests/test_message.c tests/functionaltests/test_message.h \
	tests/functionaltests/test_chat_session.c tests/functionaltests/test_chat_session.h \
	tests/functionaltests/test_carbons.c tests/functionaltests/test_carbons.h \
	tests/functionaltests/test_receipts.c tests/functionaltests/test_receipts.h \
	tests/functionaltests/test_roster.c tests/functionaltests/test_roster.h \
	tests/functionaltests/test_software.c tests/functionaltests/test_software.h \
	tests/functionaltests/test_muc.c tests/functionaltests/test_muc.h \
	tests/functionaltests/test_disconnect.c tests/functionaltests/test_disconnect.h \
	tests/functionaltests/functionaltests.c

main_source = src/main.c

python_sources = \
	src/plugins/python_plugins.h src/plugins/python_plugins.c \
	src/plugins/python_api.h src/plugins/python_api.c

c_sources = \
	src/plugins/c_plugins.h src/plugins/c_plugins.c \
	src/plugins/c_api.h src/plugins/c_api.c

git_include = src/gitversion.h

pgp_sources = \
	src/pgp/gpg.h src/pgp/gpg.c \
	src/pgp/ox.h src/pgp/ox.c

pgp_unittest_sources = \
	tests/unittests/pgp/stub_gpg.c \
	tests/unittests/pgp/stub_ox.c

otr4_sources = \
	src/otr/otrlib.h src/otr/otrlibv4.c src/otr/otr.h src/otr/otr.c

omemo_sources = \
	src/omemo/omemo.h src/omemo/omemo.c src/omemo/crypto.h src/omemo/crypto.c \
	src/omemo/store.h src/omemo/store.c src/xmpp/omemo.h src/xmpp/omemo.c \
	src/tools/aesgcm_download.h src/tools/aesgcm_download.c

omemo_unittest_sources = \
	tests/unittests/omemo/stub_omemo.c

if BUILD_PYTHON_API
core_sources += $(python_sources)
unittest_sources += $(python_sources)
endif

if BUILD_C_API
core_sources += $(c_sources)
unittest_sources += $(c_sources)
endif

otr_unittest_sources = \
	tests/unittests/otr/stub_otr.c

themes_sources = $(top_srcdir)/themes/*

icons_sources = $(top_srcdir)/icons/*

script_sources = bootstrap.sh

man1_sources = $(wildcard $(top_srcdir)/docs/profanity*.1)

if BUILD_PGP
core_sources += $(pgp_sources)
unittest_sources += $(pgp_unittest_sources)
endif

if BUILD_OTR
unittest_sources += $(otr_unittest_sources)
core_sources += $(otr4_sources)
endif

if BUILD_OMEMO
core_sources += $(omemo_sources)
unittest_sources += $(omemo_unittest_sources)
endif

all_c_sources = $(core_sources) $(unittest_sources) \
				$(pgp_sources) $(pgp_unittest_sources) \
				$(otr4_sources) $(otr_unittest_sources) \
				$(omemo_sources) $(omemo_unittest_sources) \
				$(c_sources) $(python_sources) \
				$(main_source)

AM_CFLAGS = @AM_CFLAGS@ -I$(srcdir)/src

bin_PROGRAMS = profanity
profanity_SOURCES = $(core_sources) $(main_source)
if THEMES_INSTALL
profanity_themesdir = @THEMES_PATH@
profanity_themes_DATA = $(themes_sources)
endif
if INCLUDE_GIT_VERSION
BUILT_SOURCES = $(git_include)
endif
profanity_iconsdir = @ICONS_PATH@
profanity_icons_DATA = $(icons_sources)

if BUILD_C_API
lib_LTLIBRARIES = libprofanity.la
libprofanity_la_LDFLAGS = -version-info 0:0:0 -shared -no-undefined
libprofanity_la_SOURCES = src/plugins/profapi.c

library_includedir=$(includedir)
library_include_HEADERS = src/plugins/profapi.h
endif

TESTS = tests/unittests/unittests
check_PROGRAMS = tests/unittests/unittests
tests_unittests_unittests_SOURCES = $(unittest_sources)
tests_unittests_unittests_LDADD = -lcmocka

# Functional test were commented out because of:
# https://github.com/profanity-im/profanity/pull/1010
# An issue was raised for stabber:
# https://github.com/profanity-im/stabber/issues/5
# Once this issue is resolved functional tests should be enabled again
#
#if HAVE_STABBER
#if HAVE_EXPECT
#TESTS += tests/functionaltests/functionaltests
#check_PROGRAMS += tests/functionaltests/functionaltests
#tests_functionaltests_functionaltests_SOURCES = $(functionaltest_sources)
#tests_functionaltests_functionaltests_CFLAGS = $(AM_CFLAGS) -I/usr/include/tcl8.6 -I/usr/include/tcl8.5
#tests_functionaltests_functionaltests_LDADD = -lcmocka -lstabber -lexpect
#endif
#endif

man1_MANS = $(man1_sources)

EXTRA_DIST = $(man1_sources) $(icons_sources) $(themes_sources) $(script_sources) profrc.example theme_template LICENSE.txt README.md CHANGELOG

# Ship API documentation with `make dist`
EXTRA_DIST += \
	apidocs/c/c-prof.conf \
	apidocs/c/gen.sh \
	apidocs/c/profapi.h \
	apidocs/c/profhooks.h \
	apidocs/python/conf.py \
	apidocs/python/gen.sh \
	apidocs/python/index.rst \
	apidocs/python/Makefile \
	apidocs/python/src/plugin.py \
	apidocs/python/src/prof.py

if INCLUDE_GIT_VERSION
EXTRA_DIST += .git/HEAD .git/index

$(git_include).in: .git/HEAD .git/index
	rm -f $@
	echo "#ifndef PROF_GIT_BRANCH" >> $@
	echo "#define PROF_GIT_BRANCH \"$(shell git rev-parse --symbolic-full-name --abbrev-ref HEAD)\"" >> $@
	echo "#endif" >> $@
	echo "#ifndef PROF_GIT_REVISION" >> $@
	echo "#define PROF_GIT_REVISION \"$(shell git log --pretty=format:'%h' -n 1)\"" >> $@
	echo "#endif" >> $@

#
# Create $(git_include) atomically to catch possible race. The race can occur
# when $(git_include) is generated in parallel with building of src/profanity.c.
# So this hack allows to find and fix the problem earlier.
#
$(git_include): $(git_include).in
	cp $< $@

clean-local:
	rm -f $(git_include) $(git_include).in
endif

check-unit: tests/unittests/unittests
	tests/unittests/unittests

format: $(all_c_sources)
	clang-format -i $(all_c_sources)

spell:
	codespell

doublecheck: format check spell